LINQ Group by en C#

Muhammad Maisam Abbas 16 février 2024
LINQ Group by en C#

Ce didacticiel abordera la méthode pour regrouper une liste d’objets par une valeur en C#.

LINQ Group by en C#

Le LINQ intègre une fonctionnalité de requête de type SQL avec des structures de données en C#.

Supposons que nous ayons une liste d’objets de la classe suivante.

class Car {
  public string Brand { get; set; }
  public int Model { get; set; }
}

Brand est le nom de la marque de la voiture et Model est le numéro de modèle de la voiture. La propriété Brand de plusieurs objets peut être la même, mais le numéro Model doit être différent pour chaque objet. Si nous voulons regrouper la liste des objets par nom de marque, nous pouvons utiliser la méthode GroupBy dans LINQ. L’exemple de code suivant nous montre comment nous pouvons regrouper les objets d’une classe spécifique par une valeur avec la méthode GroupBy dans 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);
        }
      }
    }
  }
}

Production:

Brand 1 11 22 Brand 2 12 21

Dans le code ci-dessus, nous avons d’abord déclaré et initialisé une liste d’objets cars puis regroupé les valeurs par la propriété Brand et l’avons sauvegardée dans la variable results.

Muhammad Maisam Abbas avatar Muhammad Maisam Abbas avatar

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

Article connexe - Csharp LINQ