Expresion Lambda GroupBy


Las expresiones Lambda son de gran ayuda al momento de hacer consultas tipo SQL, cuando uno programa en .NET y en algun momento ustedes deben de haber necesitado agrupar registros en base a un parametro determinado y la solucion para esto es la expresion GroupBy.
GroupBy lo que hace es devolver un diccionario de datos del tipo IGrouping(Of TKey, TElement) donde a cada elemento se le asigna una llave o clave, haciendo de esta manera mucho mas facil de consultar y manipular los datos.
Para nuestro ejemplo crearemos un tipo llamado City:
public class City
{
public string Name { get; set; }
public string Country { get; set; }
public int Population { get; set; }
}

Ahora supongamos que tenemos una lista de ciudades como la siguiente:
public List Cities= new List(){
new City{Name="Cochabamba",Country="Bolivia", Population=1000000},
new City{Name="La Paz",Country="Bolivia", Population=2000000},
new City{Name="Santa Cruz",Country="Bolivia", Population=1000000},
new City{Name="Madrid",Country="Espaテアa", Population=1000000},
new City{Name="Barcelona",Country="Espaテアa", Population=1000000},
new City{Name="Valencia",Country="Espaテアa", Population=1000000},
new City{Name="Aguas Calientes",Country="Mexico", Population=1000000},
new City{Name="Chetumal",Country="Mexico", Population=1000000},
new City{Name="Merida",Country="Mexico", Population=1000000},
} ;

Por ultimo digamos que necesitamos obtener solo los nombres de los paises, para eso usaremos GroupBy, seleccionaremos solo la clave y lo convertiremos en una lista:
var temporal=Cities.GroupBy(x=>x.Country).Select(g=>g.Key).ToList();

Ahora si vemos los valores de temporal:
 
Suerte!!

Publicar un comentario