Ne ho discusso con i colleghi e non siamo riusciti a capire a cosa serva .Any
un dato List<>
, in C #.
È possibile verificare la validità di un elemento nell'array come la seguente istruzione:
if (MyList.Any()){ ...} //Returns true or false
Che è esattamente lo stesso di
if (MyList.Count() != 0) { ... }
ed è molto più comune, leggibile e chiaro circa l'intento della if
dichiarazione.
Alla fine, siamo rimasti bloccati da questo pensiero:
.Any()
può essere usato, funzionerà altrettanto bene, ma è meno chiaro sull'intento del programmatore, e in tal caso non dovrebbe essere usato.
Ma riteniamo che questo non possa essere giusto; ci manca qualcosa.
Siamo noi?
Any()
è meno chiara: mi Any()
sembra più chiara, specialmente con una condizione lambda. Traducendo il codice in inglese nella mia testa, if(MyList.Count(o => o > 10) > 0)
diventa "Il numero di elementi è maggiore di 10 in più di 0?" mentre if(MyList.Any(o => o > 10))
diventa "Ci sono elementi superiori a 10?"
Any
is Exists
. Il nome Linq è probabilmente più ispirato a Haskell e Python che hanno anche tutte le funzioni.