我正在查看一些代码,它接受一个
IEnumerable<T>
并将其转换为 List<T>
,以便可以使用 List<T>.Find(predicate)
:var myEnumerable = ...;
var myList = new List<T>(myEnumerable);
var match = myList.Find(value => value.Aaa == aaa && value.Bbb == bbb);
有没有一种使用LINQ扩展方法重写它的方法,具有相同的效果,但不需要构建额外的List<T>
作为中间步骤?
FirstOrDefault(source, predicate)
扩展方法看起来是一个很好的选择,但我试图弄清楚它是否与Find
完全等效,这让我头疼。
default(T)
。它实际上是完全相同的,只不过它适用于任何IEnumerable<T>
。 - Reed Copsey