LINQ Gruppieren in C#

Muhammad Maisam Abbas 16 Februar 2024
LINQ Gruppieren in C#

In diesem Lernprogramm wird die Methode zum Gruppieren einer Liste von Objekten nach einem Wert in C# erläutert.

LINQ Gruppieren in C#

Der LINQ integriert SQL-ähnliche Abfragefunktionen in Datenstrukturen in C#.

Angenommen, wir haben eine Liste von Objekten der folgenden Klasse.

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

Brand ist der Name der Automarke und Model ist die Modellnummer des Autos. Die Brand-Eigenschaft mehrerer Objekte kann gleich sein, aber die Model-Nummer muss für jedes Objekt unterschiedlich sein. Wenn wir die Liste der Objekte nach dem Markennamen gruppieren möchten, können wir die GroupBy-Methode in LINQ verwenden. Das folgende Codebeispiel zeigt uns, wie wir Objekte einer bestimmten Klasse mit der Methode GroupBy in LINQ nach einem bestimmten Wert gruppieren können.

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);
        }
      }
    }
  }
}

Ausgabe:

Brand 1
11
22
Brand 2
12
21

Im obigen Code haben wir zuerst eine Liste von Objekten cars deklariert und initialisiert und dann die Werte nach der Eigenschaft Brand gruppiert und in der Variablen results gespeichert.

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

Verwandter Artikel - Csharp LINQ