List<T>
, когда создается с IEnumerable
(т. Е. Ваш ICollection
), копирует содержимое. Это может быть дорого.
У вас есть LINQ? Если это так, вы можете использовать метод расширения First
, который возвращает первое найденное совпадение (или выдает исключение, если совпадения нет). Это будет работать на любом IEnumerable<T>
:
var cattle = GetAllCows();
var steak = cattle.First(moo => moo.Name == "La Vache qui Rit");
Вы также можете использовать Where
, который вернет все совпадения:
var cattle = GetAllCows();
var matches = cattle.Where(moo => moo.Name == "La Vache qui Rit");
В классе Enumerable
есть куча полезных методов расширения. LINQ не только для баз данных.