Me estoy cansando de usar un código como éste:retorno a cero para Count() en IEnumerables nulos
var count = 0;
if (myEnumerable != null)
{
count = myEnumerable.Count();
}
Y esto es un poco pedante:
var count = (myEnumerable ?? new string[0]).Count();
¿Hay alguna manera más ordenada de ¿haciendo esto? Una vez tuve un método de extensión PhantomCount (mal nombrado) en IEnumerable <> que usaba mi primer ejemplo de código, pero tenía algo de olor (además del nombre).
+1 para diagnosticar la causa raíz – cordialgerm
Tener otro +1. Es una buena práctica cuando se diseña una API devolver colecciones vacías en lugar de nulos para evitar poner una carga en los desarrolladores para hacer pruebas como esta todo el tiempo. – uriDium
Depende. Hay una diferencia entre la lista de todos los vinos realmente buenos hechos en Irlanda (que es una lista vacía) y todos los vinos realmente buenos hechos en Narnia (que es nulo, porque Narnia no existe). A veces es necesario distinguir nulo de vacío. Sin embargo, estoy de acuerdo en que uno debe inclinarse hacia el vacío. –