Ich habe diese Diskussion mit Kollegen, und wir können nicht herausfinden , was die Verwendung ist .Any
für jeden gegebenen List<>
, in C #.
Sie können die Gültigkeit eines Elements im Array wie folgt überprüfen:
if (MyList.Any()){ ...} //Returns true or false
Welches ist genau das gleiche wie
if (MyList.Count() != 0) { ... }
und ist viel häufiger, lesbar und klar über die Absicht der if
Aussage.
Am Ende waren wir mit diesem Gedanken festgefahren:
.Any()
verwendet werden kann, wird genauso gut funktionieren, ist aber weniger klar über die Absicht des Programmierers, und in diesem Fall sollte es nicht verwendet werden.
Aber wir haben das Gefühl, dass das nicht richtig sein kann. Wir müssen etwas vermissen.
Sind wir?
Any()
die weniger klar ist: Any()
scheint mir klarer zu sein, insbesondere bei einer Lambda-Erkrankung. Wenn ich den Code in meinem Kopf ins Englische übersetze, if(MyList.Count(o => o > 10) > 0)
wird "Ist die Anzahl der Artikel größer als 10 größer als 0?" während if(MyList.Any(o => o > 10))
wird „Gibt es irgendwelche Gegenstände von mehr als 10?“
Any
ist Exists
. Der Name Linq ist wahrscheinlich eher von Haskell und Python inspiriert, die ebenfalls alle Funktionen haben.