Просто добавив немного информации:
Расширение Count()
не всегда повторяется. Рассмотрим Linq to Sql, где счетчик отправляется в базу данных, но вместо того, чтобы вернуть все строки, он запускает команду Sql Count()
и возвращает этот результат.
Кроме того, компилятор (или среда выполнения) достаточно умен, чтобы вызывать метод Count()
объектов, если он у него есть. Так что не , как говорят другие респонденты, будучи полностью невежественным и всегда повторяющимся для подсчета элементов.
Во многих случаях, когда программист просто проверяет if( enumerable.Count != 0 )
, используя метод расширения Any()
, как в if( enumerable.Any() )
гораздо эффективнее с ленивой оценкой linq, поскольку он может закорачивать, как только он может определить, есть ли какие-либо элементы , Это также более читабельно