Tengo dos instancias de IEnumerable<T>(con lo mismo T). Quiero una nueva instancia de la IEnumerable<T>cual es la concatenación de ambos.
¿Hay un método incorporado en .Net para hacer eso o tengo que escribirlo yo mismo?
c#
.net
ienumerable
concatenation
Samuel Rossille
fuente
fuente

Respuestas:
Sí, LINQ to Objects admite esto con
Enumerable.Concat:NB: Debería ser nulo
firstosecondrecibiría unArgumentNullException. Para evitar esto y tratar los nulos como lo haría con un conjunto vacío, use el operador de fusión nulo de la siguiente manera:fuente
using System.Linqespacio de nombres en la parte superior del archivo de código para ver el método de extensión deseado en el IDE intellisense.El
Concatmétodo devolverá un objeto que se implementaIEnumerable<T>devolviendo un objeto (llámelo Cat) cuyo enumerador intentará usar los dos elementos enumerables pasados (llámelos A y B) en secuencia. Si los enumerables pasados representan secuencias que no cambiarán durante la vida útil de Cat, y que se pueden leer sin efectos secundarios, entonces Cat se puede usar directamente. De lo contrario, puede ser una buena idea para llamarToList()enCaty utilizar el resultadoList<T>(que representará una instantánea del contenido de A y B).Algunos enumerables toman una instantánea cuando comienza la enumeración y devolverán datos de esa instantánea si la colección se modifica durante la enumeración. Si B es tan enumerable, cualquier cambio en B que ocurra antes de que Cat haya llegado al final de A aparecerá en la enumeración de Cat, pero los cambios que ocurran después de eso no lo harán. Tal semántica puede ser confusa; Tomar una instantánea de Cat puede evitar tales problemas.
fuente
Puede usar el siguiente código para su solución: -
fuente
fuente