LINQ Group by en C#
Este tutorial discutirá el método para agrupar una lista de objetos por un valor en C#.
LINQ Group by en C#
LINQ integra una funcionalidad de consulta similar a SQL con estructuras de datos en C#.
Supongamos que tenemos una lista de objetos de la siguiente clase.
class Car {
public string Brand { get; set; }
public int Model { get; set; }
}
Brand
es el nombre de la marca del automóvil y Model
es el número de modelo del automóvil. La propiedad Brand
de varios objetos puede ser la misma, pero el número de Model
debe ser diferente para cada objeto. Si queremos agrupar la lista de objetos por el nombre de la marca, podemos usar el método GroupBy
en LINQ. El siguiente ejemplo de código nos muestra cómo podemos agrupar objetos de una clase específica por algún valor con el método GroupBy
en LINQ.
using System;
using System.Collections.Generic;
using System.Linq;
namespace linq_goup_by {
public class Car {
public string Brand { get; set; }
public int Model { get; set; }
public Car(string b, int m) {
Brand = b;
Model = m;
}
}
class Program {
static void Main(string[] args) {
List<Car> cars = new List<Car>();
cars.Add(new Car("Brand 1", 11));
cars.Add(new Car("Brand 1", 22));
cars.Add(new Car("Brand 2", 12));
cars.Add(new Car("Brand 2", 21));
var results = from c in cars group c by c.Brand;
foreach (var r in results) {
Console.WriteLine(r.Key);
foreach (Car c in r) {
Console.WriteLine(c.Model);
}
}
}
}
}
Producción :
Brand 1
11
22
Brand 2
12
21
En el código anterior, primero declaramos e inicializamos una lista de objetos cars
y luego agrupamos los valores por la propiedad Brand
y los guardamos en la variable results
.
Maisam is a highly skilled and motivated Data Scientist. He has over 4 years of experience with Python programming language. He loves solving complex problems and sharing his results on the internet.
LinkedIn