如果我知道集合中只有一个匹配项,有没有办法告诉 Linq 这一点,以便它在找到它时中止搜索?
我假设这两个都在返回一个项目之前搜索完整的集合?
var fred = _people.Where((p) => p.Name == "Fred").First();
var bill = _people.Where((p) => p.Name == "Bill").Take(1);
编辑:人们似乎对FirstOrDefault
, 或SingleOrDefault
. 这些与我的问题无关。如果集合为空,它们只是提供一个默认值。正如我所说,我知道我的收藏有一个匹配的项目。
AakashM 的评论是我最感兴趣的。我会出现我的假设是错误的,但我很感兴趣为什么。例如,当 linq to objects 在我的示例代码中运行 Where() 函数时,它如何知道对其返回值还有进一步的操作?