Jestem zmęczony z użyciem kodu:Powrót do zera dla count() na zerowych IEnumerables
var count = 0;
if (myEnumerable != null)
{
count = myEnumerable.Count();
}
I to jest nieco pedantyczny:
var count = (myEnumerable ?? new string[0]).Count();
Czy istnieje jakiś sposób porządniej robiąc to? Miałem kiedyś (źle nazwaną) metodę rozszerzenia PhantomCount na IEnumerable <> która wykorzystała mój pierwszy przykład kodu, ale miała w sobie coś z tego zapachu (poza nazwą).
+1 dla diagnozowania głównej przyczyny – cordialgerm
Mieć kolejne +1. To naprawdę dobra praktyka przy projektowaniu interfejsu API w celu zwrócenia pustych kolekcji zamiast wartości zerowych, aby uniknąć nakładania na deweloperów ciężaru, aby takie testy były wykonywane przez cały czas. – uriDium
Zależy. Istnieje różnica między listą wszystkich naprawdę dobrych win produkowanych w Irlandii (która jest pustą listą) a wszystkimi naprawdę dobrymi winami produkowanymi w Narnii (która jest zerowa, ponieważ Narnia nie istnieje). Czasami konieczne jest odróżnienie wartości pustej od pustej. Zgadzam się, że należy się jednak skłaniać ku powrotowi pustemu. –