mi sto stancando di usare codice come questo:restituire zero per il conte() su IEnumerables nulli
var count = 0;
if (myEnumerable != null)
{
count = myEnumerable.Count();
}
E questo è un po 'saccente:
var count = (myEnumerable ?? new string[0]).Count();
C'è un modo più ordinato di facendo questo? Una volta ho avuto un metodo di estensione PhantomCount (mal chiamato) su IEnumerable <> che utilizzava il mio primo esempio di codice, ma aveva un odore particolare (oltre al nome).
+1 per diagnosticare la causa principale – cordialgerm
Avere un altro +1. È davvero una buona pratica progettare un'API per restituire le raccolte vuote piuttosto che i null per evitare di gravare sugli sviluppatori affinché eseguano test come questo in ogni momento. – uriDium
Depends. C'è una differenza tra l'elenco di tutti i vini veramente buoni prodotti in Irlanda (che è una lista vuota) e tutti i vini veramente buoni prodotti a Narnia (che è nulla, perché Narnia non esiste). A volte è necessario distinguere null da vuoto. Sono d'accordo sul fatto che uno dovrebbe inclinarsi verso il ritorno vuoto però. –