2008-10-29 103 views

回答

3

这里是my own abuses--纯粹是为了嘲笑怪人之夜,并展示编译器实际上对查询表达式所做的事情。

可以说我"LINQ to Mandelbrot"有点滥用太:)

我特别的方式思考语法的滥用,但总有很多方法可以滥用LINQ的非常存在 - 做事“LINQ的方式”,当有更简单的方法可用,而不使用LINQ。举例来说,让一个数组的n个元素:

// Sensible (we know that people implements IList<Person>) 
Person x = people[10]; 
// Insane 
Person y = people.Skip(9).First(); 

我怀疑会有滥用更多的情况下是这样比滥用查询表达式的能力,一方面是因为很多开发者不会意识到滥用查询表达式甚至会起作用:)

+1

为什么有人会做Skip.First时他们可以做ElementAt? ;) – 2009-09-18 08:27:32

+0

在硬币的另一面,有人认为查询表达式是使用数据库的唯一方式。 http://stackoverflow.com/q/16904331/34397 – SLaks 2013-06-03 19:33:21

2

老实说,这一定是情况下,人们选择了LINQ语法,其中的代码,这样做:

  • 比一个简单的循环
  • 没有提供性能正确性优势相同或更长(可读性/可维护性)在一个简单的循环
1

其中“最佳”那些我见过的是thedailywtf.com

public string LastSixDigits 
{ 
get 
{ 
    if (string.IsNullOrWhiteSpace(this.Number) || this.Number.Length < 6) 
    return string.Empty; 
    return this.Number.Reverse().Take(6).Reverse().Aggregate(string.Empty, (s, c) => s += c); 
} 
} 
相关问题