Gruppieren von Daten (C#)

Als „Gruppieren“ wird das Anordnen von Daten in Gruppen bezeichnet, sodass die Elemente in jeder Gruppe über ein gemeinsames Attribut verfügen.

Die folgende Abbildung zeigt die Ergebnisse der Gruppierung einer Zeichenfolge. Der Schlüssel für jede Gruppe ist das Zeichen.

LINQ-Gruppierungsvorgänge

Die Methoden des Standardabfrageoperators, die Datenelemente gruppieren, sind im folgenden Abschnitt aufgeführt.

Methoden

Methodenname Beschreibung C#-Abfrageausdruckssyntax Weitere Informationen
GroupBy Gruppenelemente, die über ein gemeinsames Attribut verfügen. Jede Gruppe wird durch ein <xref:System.Linq.IGrouping%602>-Objekt dargestellt. group … by

- oder -

group … by … into …
<xref:System.Linq.Enumerable.GroupBy%2A?displayProperty=nameWithType>

<xref:System.Linq.Queryable.GroupBy%2A?displayProperty=nameWithType>
ToLookup Fügt Elemente basierend auf einer Schlüsselauswahlfunktion in eine <xref:System.Linq.Lookup%602>-Klasse (one-to-many-Wörterbuch) ein. Nicht zutreffend. <xref:System.Linq.Enumerable.ToLookup%2A?displayProperty=nameWithType>

Beispiel für die Abfrageausdruckssyntax

Im folgenden Codebeispiel wird die group by-Klausel angewandt, um die Gruppe ganzer Zahlen in Listen mit geraden und ungeraden Zahlen zu aufzuteilen.

List<int> numbers = new List<int>() { 35, 44, 200, 84, 3987, 4, 199, 329, 446, 208 };  

IEnumerable<IGrouping<int, int>> query = from number in numbers  
                                         group number by number % 2;  

foreach (var group in query)  
{  
    Console.WriteLine(group.Key == 0 ? "\nEven numbers:" : "\nOdd numbers:");  
    foreach (int i in group)  
        Console.WriteLine(i);  
}  

/* This code produces the following output:  

    Odd numbers:  
    35  
    3987  
    199  
    329  

    Even numbers:  
    44  
    200  
    84  
    4  
    446  
    208  
*/  

Siehe auch

<xref:System.Linq>
Übersicht über Standardabfrageoperatoren (C#)
group-Klausel
Vorgehensweise: Erstellen einer geschachtelten Gruppe
Vorgehensweise: Gruppieren von Dateien nach Erweiterung (LINQ)
Vorgehensweise: Gruppieren von Abfrageergebnissen
Vorgehensweise: Ausführen einer Unterabfrage für eine Gruppierungsoperation
Vorgehensweise: Teilen einer Datei in mehrere Dateien durch das Verwenden von Gruppen (LINQ) (C#)