Exportieren (0) Drucken
Alle erweitern
Dieser Artikel wurde maschinell übersetzt. Bewegen Sie den Mauszeiger über die Sätze im Artikel, um den Originaltext anzuzeigen. Weitere Informationen
Übersetzung
Original

Enumerable.GroupBy<TSource, TKey, TElement>-Methode (IEnumerable<TSource>, Func<TSource, TKey>, Func<TSource, TElement>, IEqualityComparer<TKey>)

Gruppiert die Elemente einer Sequenz entsprechend einer Schlüsselauswahlfunktion. Die Schlüssel werden mithilfe eines Vergleichs verglichen, und die Elemente jeder Gruppe werden mithilfe einer angegebenen Funktion projiziert.

Namespace:  System.Linq
Assembly:  System.Core (in System.Core.dll)

public static IEnumerable<IGrouping<TKey, TElement>> GroupBy<TSource, TKey, TElement>(
	this IEnumerable<TSource> source,
	Func<TSource, TKey> keySelector,
	Func<TSource, TElement> elementSelector,
	IEqualityComparer<TKey> comparer
)

Typparameter

TSource

Der Typ der Elemente von source.

TKey

Der Typ des von keySelector zurückgegebenen Schlüssels.

TElement

Der Typ der Elemente in der IGrouping<TKey, TElement>.

Parameter

source
Typ: System.Collections.Generic.IEnumerable<TSource>
Ein IEnumerable<T>, dessen Elemente gruppiert werden sollen.
keySelector
Typ: System.Func<TSource, TKey>
Eine Funktion zum Extrahieren des Schlüssels für jedes Element.
elementSelector
Typ: System.Func<TSource, TElement>
Eine Funktion, mit der jedes Quellelement einem Element in einem IGrouping<TKey, TElement> zugeordnet wird.
comparer
Typ: System.Collections.Generic.IEqualityComparer<TKey>
Ein IEqualityComparer<T> zum Vergleichen von Schlüsseln.

Rückgabewert

Typ: System.Collections.Generic.IEnumerable<IGrouping<TKey, TElement>>
Ein IEnumerable<IGrouping<TKey, TElement>> in C# oder ein IEnumerable(Of IGrouping(Of TKey, TElement)) in Visual Basic, wobei jedes IGrouping<TKey, TElement>-Objekt eine Auflistung von Objekten vom Typ TElement und einen Schlüssel enthält.

Hinweis zur Verwendung

In Visual Basic und C# können Sie diese Methode als Instanzenmethode für ein beliebiges Objekt vom Typ IEnumerable<TSource> aufrufen. Bei Verwendung der Syntax für Instanzenmethoden lassen Sie den ersten Parameter aus. Weitere Informationen finden Sie unter Erweiterungsmethoden (Visual Basic) und Erweiterungsmethoden (C#-Programmierhandbuch).

AusnahmeBedingung
ArgumentNullException

source, keySelector oder elementSelector ist null.

Diese Methode wird mit verzögerter Ausführung implementiert. Der Wert der sofortigen Rückgabe ist ein Objekt, in dem alle zum Ausführen der Aktion erforderlichen Informationen gespeichert werden. Die von dieser Methode dargestellte Abfrage wird erst ausgeführt, wenn das Objekt entweder durch den direkten Aufruf der zugehörigen GetEnumerator-Methode oder mithilfe von foreach in Visual C# oder For Each in Visual Basic aufgelistet wird.

Die GroupBy<TSource, TKey, TElement>(IEnumerable<TSource>, Func<TSource, TKey>, Func<TSource, TElement>, IEqualityComparer<TKey>)-Methode gibt eine Auflistung von IGrouping<TKey, TElement>-Objekten zurück, die für jeden ermittelten eindeutigen Schlüssel ein Objekt enthält. Ein IGrouping<TKey, TElement> ist ein IEnumerable<T>, dessen Elementen auch ein Schlüssel zugeordnet ist.

Die IGrouping<TKey, TElement>-Objekte werden in einer Reihenfolge zurückgegeben, die auf der Reihenfolge der Elemente in der source beruht, die den ersten Schlüssel für jedes IGrouping<TKey, TElement> erzeugt hat. Elemente in einer Gruppierung werden in der Reihenfolge zurückgegeben, in der die Elemente, die sie erzeugt haben, in source angeordnet sind.

Wenn comparernull ist, werden Schlüssel mithilfe des Standardgleichheitsvergleichs Default verglichen.

Wenn zwei Schlüssel von comparer als gleich bestimmt werden, wird der erste Schlüssel als Schlüssel für die Gruppierung ausgewählt.

In der Abfrageausdruckssyntax wird eine group by-Klausel (Visual C#) oder Group By Into-Klausel (Visual Basic) in einen Aufruf von GroupBy übersetzt. Weitere Informationen und Verwendungsbeispiele finden Sie unter group-Klausel (C#-Referenz) und GROUP BY-Klausel (Visual Basic).

.NET Framework

Unterstützt in: 4.5.2, 4.5.1, 4.5, 4, 3.5

.NET Framework Client Profile

Unterstützt in: 4, 3.5 SP1

Portable Klassenbibliothek

Unterstützt in: Portable Klassenbibliothek

.NET für Windows Store-Apps

Unterstützt in: Windows 8

.NET für Windows Phone-Apps

Unterstützt in: Windows Phone 8, Silverlight 8.1

Windows Phone 8.1, Windows Phone 8, Windows 8.1, Windows Server 2012 R2, Windows 8, Windows Server 2012, Windows 7, Windows Vista SP2, Windows Server 2008 (Server Core-Rolle wird nicht unterstützt), Windows Server 2008 R2 (Server Core-Rolle wird mit SP1 oder höher unterstützt; Itanium wird nicht unterstützt)

.NET Framework unterstützt nicht alle Versionen sämtlicher Plattformen. Eine Liste der unterstützten Versionen finden Sie unter Systemanforderungen für .NET Framework.

Community-Beiträge

HINZUFÜGEN
Anzeigen:
© 2015 Microsoft