Я просматриваю код, который принимает 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. p >