Byłem omawiania tego z kolegami, a nie mogliśmy dowiedzieć się, co ma zastosowanie .Any
dla danego List<>
, w języku C #.
Możesz sprawdzić poprawność elementu w tablicy, podobnie jak następująca instrukcja:
if (MyList.Any()){ ...} //Returns true or false
Który jest dokładnie taki sam jak
if (MyList.Count() != 0) { ... }
i jest znacznie bardziej powszechny, czytelny i jasny na temat intencji tego if
stwierdzenia.
W końcu utknęliśmy z tą myślą:
.Any()
może być używany, będzie działał równie dobrze, ale nie jest jasne, co do intencji programisty, i w takim przypadku nie należy go używać.
Ale czujemy, że to nie może być prawda; coś nam brakuje.
Jesteśmy?
Any()
jest mniej jasne: Any()
wydaje mi się bardziej jasne, szczególnie w przypadku lambda. Tłumaczenie kodu na angielski w mojej głowie if(MyList.Count(o => o > 10) > 0)
brzmi: „Czy liczba pozycji większa niż 10 jest większa niż 0?” mając na if(MyList.Any(o => o > 10))
myśli „Czy są jakieś przedmioty większe niż 10?”
Any
to Exists
. Nazwa Linq jest prawdopodobnie bardziej zainspirowana przez Haskell i Python, które mają również dowolne / wszystkie funkcje.