比较:LINQ与LAMBDA表达

时间:2010-10-12 12:23:41

标签: c# linq lambda

我需要讨论LINQ和Lambda Expression的性能。

哪一个更好?

2 个答案:

答案 0 :(得分:34)

我想你在这里谈论LINQ时的意思是query expression

它们是等价的。编译器在编译之前将query expression更改为等效的Lambda表达式,因此生成的IL完全相同。

示例

var result = select s from intarray
             where s < 5
             select s + 1;

完全相同
var result = intarray.Where( s => s < 5).Select( s => s+1);

请注意,如果您编写如下的查询表达式:

var result = select s from intarray
             where s < 5
             select s;

它转换为:

var result = intarray.Where( s => s < 5);

省略对Select的最终调用,因为它是多余的。

答案 1 :(得分:4)

反射器的快速比较可能会成功。但是,从'偏好'的角度来看,我发现lambda语句更易于遵循,并且无论是对象,xml还是其他内容,都可以全面编写和使用它们。

如果表现可以忽略不计,我会选择最适合你的那个。

我实际上开始讨论可能感兴趣的linq方法的一个小话题:

What's your favourite linq method or 'trick'

欢呼声..