Я обговорював це з колегами, і ми не змогли зрозуміти, яка користь .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?"
AnyIS Exists. Ім'я Linq, ймовірно, більше натхнене Haskell та Python, які також мають будь-які / всі функції.