myCollection.Where(...)之间是否有任何性能差异.FirstOrDefault()和myCollection.FirstOrDefault(...)
使用您正在使用的谓词填充点.
假设我们正在谈论LinqToObjects(显然是LinqToSql,LinqToWhatever有自己的规则),第一个将会如此慢一点,因为必须创建一个新的迭代器,但是你不可能注意到它的差别.在比较次数和检查项目数量方面,两者运行的时间几乎相同.
如果你担心,不会发生的是.Where运算符将列表过滤到n个项目,而.FirstOfDefault从过滤列表中取出第一个.两个序列都会正确短路