Grupo LINQ por em C#
Este tutorial discutirá o método para agrupar uma lista de objetos por um valor em C#.
Grupo LINQ por em C#
O LINQ integra a funcionalidade de consulta semelhante a SQL com estruturas de dados em C#.
Suponha que temos uma lista de objetos da seguinte classe.
class Car {
public string Brand { get; set; }
public int Model { get; set; }
}
Brand
é o nome da marca do carro e Model
é o número do modelo do carro. A propriedade Brand
de vários objetos pode ser a mesma, mas o número do Model
precisa ser diferente para cada objeto. Se quisermos agrupar a lista de objetos pelo nome da marca, podemos usar o método GroupBy
no LINQ. O exemplo de código a seguir nos mostra como podemos agrupar objetos de uma classe específica por algum valor com o método GroupBy
no 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);
}
}
}
}
}
Resultado:
Brand 1 11 22 Brand 2 12 21
No código acima, primeiro declaramos e inicializamos uma lista de objetos cars
e depois agrupamos os valores pela propriedade Brand
e salvamos na variável 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