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