【发布时间】:2011-03-21 17:49:19
【问题描述】:
考虑以下几点:
bool invalidChildren = this.Children.Any(c => !c.IsValid());
这个类有一个具有IsValid() 方法的子对象集合。假设IsValid() 方法是一个处理器密集型任务。在遇到IsValid() 为false 的第一个子对象后,理论上可以停止处理,因为结果永远不会为真。 LINQ to 对象实际上在第一个 IsValid() = false 之后停止评估(如逻辑 AND)还是继续评估所有子对象?
显然我可以把它放在一个 foreach 循环中并在第一个无效结果上中断,但我只是想知道 LINQ to objects 是否也足够聪明地做到这一点。
编辑: 感谢您的回答,出于某种原因,我没有想到自己在 MSDN 上查找它。
【问题讨论】:
标签: c# linq-to-objects