Я обсуждал это с коллегами, и мы не могли понять, какая польза от них .Any
для List<>
C #.
Вы можете проверить правильность элемента в массиве, как следующий оператор:
if (MyList.Any()){ ...} //Returns true or false
Что точно так же, как
if (MyList.Count() != 0) { ... }
и является гораздо более распространенным, читаемым и понятным о намерении if
утверждения.
В итоге мы застряли с этой мыслью:
.Any()
может использоваться, будет работать так же хорошо, но менее ясно о намерениях программиста, и в этом случае его не следует использовать.
Но мы чувствуем, что это не может быть правдой; мы должны что-то упустить.
Мы?
Any()
которое менее ясно: Any()
мне кажется более ясным, особенно с лямбда-условием. Переводя код на английский у меня в голове, if(MyList.Count(o => o > 10) > 0)
становится "Количество предметов больше 10 больше 0?" тогда как if(MyList.Any(o => o > 10))
становится "Есть ли предметы больше 10?"
Any
есть Exists
. Имя Linq, вероятно, больше вдохновлено Haskell и Python, которые также имеют любые / все функции.