(0) exportieren 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.GroupJoin<TOuter, TInner, TKey, TResult>-Methode (IEnumerable<TOuter>, IEnumerable<TInner>, Func<TOuter, TKey>, Func<TInner, TKey>, Func<TOuter, IEnumerable<TInner>, TResult>, IEqualityComparer<TKey>)

Korreliert die Elemente von zwei Sequenzen anhand der Gleichheit der Schlüssel und gruppiert die Ergebnisse. Schlüssel werden mithilfe eines angegebenen IEqualityComparer<T> verglichen.

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

public static IEnumerable<TResult> GroupJoin<TOuter, TInner, TKey, TResult>(
	this IEnumerable<TOuter> outer,
	IEnumerable<TInner> inner,
	Func<TOuter, TKey> outerKeySelector,
	Func<TInner, TKey> innerKeySelector,
	Func<TOuter, IEnumerable<TInner>, TResult> resultSelector,
	IEqualityComparer<TKey> comparer
)

Typparameter

TOuter

Der Typ der Elemente der ersten Sequenz.

TInner

Der Typ der Elemente der zweiten Sequenz.

TKey

Der Typ der von den Schlüsselauswahlfunktionen zurückgegebenen Schlüssel.

TResult

Der Typ der Ergebniselemente.

Parameter

outer
Typ: System.Collections.Generic.IEnumerable<TOuter>
Die erste zu verknüpfende Sequenz.
inner
Typ: System.Collections.Generic.IEnumerable<TInner>
Die Sequenz, die mit der ersten Sequenz verknüpft werden soll.
outerKeySelector
Typ: System.Func<TOuter, TKey>
Eine Funktion zum Extrahieren des Joinschlüssels aus jedem Element der ersten Sequenz.
innerKeySelector
Typ: System.Func<TInner, TKey>
Eine Funktion zum Extrahieren des Joinschlüssels aus jedem Element der zweiten Sequenz.
resultSelector
Typ: System.Func<TOuter, IEnumerable<TInner>, TResult>
Eine Funktion zum Erstellen eines Ergebniselements anhand eines Elements aus der ersten Sequenz und einer Auflistung von übereinstimmenden Elementen aus der zweiten Sequenz.
comparer
Typ: System.Collections.Generic.IEqualityComparer<TKey>
Ein IEqualityComparer<T> zum Hashen und Vergleichen von Schlüsseln.

Rückgabewert

Typ: System.Collections.Generic.IEnumerable<TResult>
Ein IEnumerable<T>, das Elemente vom Typ TResult enthält, die durch Ausführen eines Gruppenjoins von zwei Sequenzen ermittelt werden.

Hinweis zur Verwendung

In Visual Basic und C# können Sie diese Methode als Instanzenmethode für ein beliebiges Objekt vom Typ IEnumerable<TOuter> 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

outer, inner, outerKeySelector, innerKeySelector oder resultSelector 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.

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

GroupJoin führt zu hierarchischen Ergebnissen, was bedeutet, dass Elemente aus outer mit Auflistungen passender Elementen aus inner kombiniert werden. Mit GroupJoin können Ergebnisse auf der Grundlage eines kompletten Satzes von Übereinstimmungen für jedes Element von outer ermittelt werden.

HinweisHinweis

Wenn keine korrelierten Elemente von inner für ein angegebenes Element von outer vorhanden sind, ist die Sequenz der Übereinstimmungen für dieses Element leer, jedoch in den Ergebnissen vorhanden.

Die resultSelector-Funktion wird für jedes outer-Element nur einmal aufgerufen, zusammen mit einer Auflistung aller inner-Elemente, die mit dem outer-Element übereinstimmen. Dies unterscheidet sich von der Join-Methode, in der die Ergebnisauswahlfunktion für Paare aufgerufen wird, die ein Element aus outer und ein Element aus inner enthalten.

GroupJoin behält die Reihenfolge der Elemente von outer und für jedes Element von outer die Reihenfolge der übereinstimmenden Elemente aus inner bei.

Für GroupJoin gibt es in der herkömmlichen Terminologie für relationale Datenbanken keine direkte Entsprechung. Diese Methode implementiert jedoch eine Obermenge von inneren Joins und linken äußeren Joins. Beide dieser Operationen können als Gruppenjoin geschrieben werden. Siehe Verknüpfungsvorgänge.

.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:
© 2014 Microsoft