En C# utilizo LINQ e IEnumerable un poco. Y todo está bien y bueno (o al menos en su mayor parte).¿Hay un singleton de "lista vacía" en C#?
Sin embargo, en muchos casos me parece que necesito un IEnumerable<X>
vacío como valor predeterminado. Es decir, me gustaría
for (var x in xs) { ... }
para trabajar sin necesidad de una verificación de nulo. Ahora bien, esto es lo que hago actualmente, dependiendo del contexto más amplio:
var xs = f() ?? new X[0]; // when xs is assigned, sometimes
for (var x in xs ?? new X[0]) { ... } // inline, sometimes
Ahora, si bien lo anterior es perfectamente bien para mí - es decir, si hay alguna "sobrecarga adicional" con la creación de la matriz objeto que simplemente no les importa - me preguntaba:
¿hay Singleton "IEnumerable inmutable vacío/IList" en C#/.NET.? (Y, incluso si no es así, hay una manera "mejor" para manejar el caso descrito anteriormente?)
Java tiene Collections.EMPTY_LIST
inmutable Singleton - "bien escrito" a través de Collections.emptyList<T>()
- el cual sirve para este propósito, aunque No estoy seguro si un concepto similar podría funcionar en C# porque los genéricos se manejan de manera diferente.
Gracias.
Bueno, maldición :) Esto es lo que obtengo por enfocarme en List/IList y no Enumerable/IEnumerable, gracias a todos - vota por todas partes. –
http: // stackoverflow.com/questions/3229698/how-can-i-return-an-empty-ienumerable –
'public static class Array {public static readonly T [] Empty = new T [0]; } 'y se puede llamar como:' Array .Empty'. Lo pregunté [aquí en CodeReview] (http://codereview.stackexchange.com/q/20417/17039). –