Я обсуждал это с коллегами, и мы не могли понять, какая польза от них .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, которые также имеют любые / все функции.