在下面的语句中,where方法将在返回的元素上执行First之前迭代所有元素,或者First方法是否已在Where方法中生效?在VB.NET中:
Items.Where(Function(Item) Item.IsMatch).First
项目实现IEnumerable(Of T)
答案 0 :(得分:1)
来自Where
的{{1}}:
此方法通过使用延迟执行来实现。眼前的 返回值是存储所有信息的对象 需要执行操作。此方法表示的查询 在枚举对象之前不会执行。
这是First()
在Where
输出上调用的时间,而GetEnumerator
输出会调用{{1}}。