Grimpi IT Blog

febrero 26, 2008

Diferencias entre Union y Concat en C# 3.0

Filed under: .NET, Linq — grimpi @ 2:11 pm

Ayer trabajando con C# 3.0 y LINQ, me tope con una duda. Cuál es la diferencia entre el método Concat y Union de la lista?

En definitiva, ambos métodos parecen ser muy similares. Agregan el contenido de una lista en otra. Sin embargo, hay una pequeña e importante diferencia. El método Concat, agrega todos los ítems de una lista, mientras que el Union, agrega todos los ítems de la lista que no están en la otra lista.

Para hacerlo más claro, si tuviéramos que hacer la traducción a lenguaje SQL, el Concat es el equivalente al UNION ALL, mientras que Union es equivalente a UNION. Esto se puede ver claro, si usamos Linq to SQL.

Veamos este ejemplo:

List<String> list = new List<string>();
List<String> list2 = new List<string>();
list.Add(“Hola”);
list.Add(“Manuela”);
list.Add(“Jose”);
list2.Add(“Hola”);
list2.Add(“Esteban”);
list2.Add(“Ricardo”);

List<string> query = list.Concat(list2).ToList();
query.ForEach(item => System.Console.WriteLine(item));

La salida en este ejemplo serian 6 registros, o sea, la suma de list + list2.
Pero veamos este ejemplo:

List<string> query = list.Union(list2).ToList();
query.ForEach(item => System.Console.WriteLine(item));

En este caso, la salida serian solo 5 registros. Porque? Porque el item “Hola” se encuentra en las 2 listas. Por lo cual, el método Union no considera el duplicado.

1 comentario »

  1. un poco complicado el blog, pero te envidio por saber tanto de computación!

    te agregué en el blog roll de AESYD,

    saludos y cuídate, ahora que estás subiendo el Aconcagua!

    Comentario por marta salazar — marzo 20, 2008 @ 8:57 am


RSS feed for comments on this post. TrackBack URI

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s

Blog de WordPress.com.

A %d blogueros les gusta esto: