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).