Uniendo dos listas juntas
Si tengo dos listas de tipo cadena (o de cualquier otro tipo), ¿cuál es una forma rápida de unir las dos listas?
El orden debería seguir siendo el mismo. Se deben eliminar los duplicados (aunque cada elemento en ambos enlaces es único). No encontré mucho sobre esto al buscar en Google y no quería implementar ninguna interfaz .NET para acelerar la entrega.
Tu podrías intentar:
List<string> a = new List<string>();
List<string> b = new List<string>();
a.AddRange(b);
página MSDN paraAddRange
Esto conserva el orden de las listas, pero no elimina ningún duplicado (lo cual Union
sería suficiente).
Esto cambia la lista a
. Si desea conservar las listas originales, debe usar Concat
(como se señala en las otras respuestas):
var newList = a.Concat(b);
Esto devuelve IEnumerable
siempre que a
no sea nulo.
La forma con la menor sobrecarga de espacio es utilizar el método de extensión Concat.
var combined = list1.Concat(list2);
Crea una instancia IEnumerable<T>
que enumerará los elementos de lista1 y lista2 en ese orden.
El método Union podría satisfacer sus necesidades. No especificó si el orden o los duplicados eran importantes.
Tome dos IEnumerables y realice una unión como se ve aquí:
int[] ints1 = { 5, 3, 9, 7, 5, 9, 3, 7 };
int[] ints2 = { 8, 3, 6, 4, 4, 9, 1, 0 };
IEnumerable<int> union = ints1.Union(ints2);
// yields { 5, 3, 9, 7, 8, 6, 4, 1, 0 }