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:
gracias, me sirvio para mi trabajo del cona
ResponderEliminar