LINQ表达式返回多个项后跟First方法会迭代.NET中前面方法中的所有项吗?

时间:2014-07-31 08:39:17

标签: c# vb.net linq

在下面的语句中,where方法将在返回的元素上执行First之前迭代所有元素,或者First方法是否已在Where方法中生效?在VB.NET中:

Items.Where(Function(Item) Item.IsMatch).First

项目实现IEnumerable(Of T)

1 个答案:

答案 0 :(得分:1)

来自Where的{​​{1}}:

  

此方法通过使用延迟执行来实现。眼前的   返回值是存储所有信息的对象   需要执行操作。此方法表示的查询   在枚举对象之前不会执行。

这是First()Where输出上调用的时间,而GetEnumerator输出会调用{{1}}。