0
int[] integers = new int[] { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 };

这有什么区别:

var odd = from i in integers
          where i % 2 == 1
          select i;

和这个 :

var ODD = integers.Where(i => i % 2 == 1);

如果没有区别,只是面孔不同,那为什么有可能呢?我的意思是有两种方法需要什么?

4

4 回答 4

2

什么都没有——第一个是第二个的语法糖。

我使用任何使意图明确的东西。有时简洁是好的,有时是流畅的方法的流程,有时是一个查询来表达我在做什么。

于 2012-07-01T11:12:25.473 回答
0

没有区别,只是语法不同。看看LINQ 文档

于 2012-07-01T11:12:38.407 回答
0

编译器规范要求在编译之前将 LINQ 查询转换为扩展方法调用。

LINQ 查询通常比扩展方法调用的可读性更高。这里的所有都是它的。

于 2012-07-01T11:18:43.673 回答
0

确实,您在谈论查询表达式和方法链之间的区别......在性能方面没有任何区别

有关更多信息,请查看此帖子

于 2012-07-01T11:19:18.050 回答