c# - singletons - ¿Cómo puedo crear un singleton IEnumerable?
singleton sqlconnection c# (3)
Su llamada a AsEnumerable()
es necesaria. AsEnumerable
se usa generalmente en los casos en que el objeto de destino implementa IQueryable<T>
pero desea forzarlo a usar LINQ-to-Objects (cuando se realiza un filtrado del lado del cliente en un ORM compatible con LINQ, por ejemplo). Ya que List<T>
implementa IEnumerable<T>
pero no IQueryable<T>
, no hay necesidad de hacerlo.
De todos modos, también puedes crear una matriz de un solo elemento con tu artículo;
IEnumerable<T> enumerable = new[] { t };
O Enumerable.Repeat
IEnumerable<T> enumerable = Enumerable.Repeat(t, 1);
¿Ofrece C # algún método agradable para convertir una entidad única de tipo T
a IEnumerable<T>
?
La única forma en que puedo pensar es algo como:
T entity = new T();
IEnumerable<T> = new List { entity }.AsEnumerable();
Y supongo que debería haber una mejor manera.
yo suelo
Enumerable.Repeat(entity, 1);
var entity = new T();
var singleton = Enumerable.Repeat(entity, 1);
(Aunque probablemente solo haría var singleton = new[] { entity };
en la mayoría de las situaciones, especialmente si fuera solo para uso privado).