Questo articolo è stato tradotto automaticamente. Per visualizzare l'articolo in inglese, selezionare la casella di controllo Inglese. È possibile anche visualizzare il testo inglese in una finestra popup posizionando il puntatore del mouse sopra il testo.
Traduzione
Inglese

Metodo Enumerable.GroupJoin<TOuter, TInner, TKey, TResult>(IEnumerable<TOuter>, IEnumerable<TInner>, Func<TOuter, TKey>, Func<TInner, TKey>, Func<TOuter, IEnumerable<TInner>, TResult>, IEqualityComparer<TKey>)

 

Data di pubblicazione: ottobre 2016

Mette in correlazione gli elementi di due sequenze in base all'uguaglianza delle chiavi e raggruppa i risultati. Per confrontare le chiavi, viene usato un oggetto IEqualityComparer<T> specificato.

Spazio dei nomi:   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
)

Parametri

outer
Type: System.Collections.Generic.IEnumerable<TOuter>

Prima sequenza da unire.

inner
Type: System.Collections.Generic.IEnumerable<TInner>

Sequenza da unire alla prima sequenza.

outerKeySelector
Type: System.Func<TOuter, TKey>

Funzione per estrarre la chiave di aggiunta da ogni elemento della prima sequenza.

innerKeySelector
Type: System.Func<TInner, TKey>

Funzione per estrarre la chiave di aggiunta da ogni elemento della seconda sequenza.

resultSelector
Type: System.Func<TOuter, IEnumerable<TInner>, TResult>

Funzione per creare un elemento di risultato da un elemento dalla prima sequenza e una raccolta di elementi corrispondenti dalla seconda sequenza.

comparer
Type: System.Collections.Generic.IEqualityComparer<TKey>

Oggetto IEqualityComparer<T> per la codifica hash e il confronto delle chiavi.

Valore restituito

Type: System.Collections.Generic.IEnumerable<TResult>

Un IEnumerable<T> che contiene gli elementi di tipo TResult ottenuti eseguendo un join raggruppato di due sequenze.

Parametri tipo

TOuter

Tipo degli elementi della prima sequenza.

TInner

Tipo degli elementi della seconda sequenza.

TKey

Tipo delle chiavi restituite dalle funzioni del selettore principale.

TResult

Tipo degli elementi di risultato.

Exception Condition
ArgumentNullException

outer o inner o outerKeySelector o innerKeySelector o resultSelector è null.

Questo metodo viene implementato tramite esecuzione posticipata. Il valore restituito immediato è un oggetto che archivia tutte le informazioni necessarie per eseguire l'azione. La query rappresentata da questo metodo non viene eseguita finché l'oggetto viene enumerata chiamando il relativo GetEnumerator metodo direttamente o tramite foreach in Visual C# o For Each in Visual Basic.

Seomparer è null, operatore di uguaglianza predefinito Default, viene utilizzato per l'hash e il confronto delle chiavi.

GroupJoin<TOuter, TInner, TKey, TResult> produce risultati gerarchici, il che significa che gli elementi da outer vengono abbinati a insiemi di elementi corrispondenti dalla inner. GroupJoin Consente di ottenere risultati di base di un intero set di risultati per ogni elemento di outer.

System_CAPS_noteNota

Se non sono presenti elementi correlati in inner per un determinato elemento di outer, la sequenza di corrispondenze per tale elemento è vuota ma verrà comunque visualizzata nei risultati.

Il resultSelector funzione viene chiamata solo una volta per ogni outer elemento insieme a una raccolta di tutti i inner gli elementi che corrispondono il outer elemento. Questo comportamento è diverso dal Join<TOuter, TInner, TKey, TResult> metodo in cui viene richiamata la funzione del selettore di risultato su coppie che contengono un elemento da outer e un elemento da inner.

GroupJoin mantiene l'ordine degli elementi di outer, e per ogni elemento della outer, l'ordine degli elementi corrispondenti di inner.

GroupJoin<TOuter, TInner, TKey, TResult> non ha equivalenti diretti in termini di database relazionali tradizionali. Tuttavia, questo metodo implementa un superset di inner join e left outer join. Entrambe queste operazioni possono essere scritti in termini di un join raggruppato. Vedere Join Operations.

Universal Windows Platform
Disponibile da 8
.NET Framework
Disponibile da 3.5
Libreria di classi portabile
Supportato in: piattaforme .NET portabili
Silverlight
Disponibile da 2.0
Windows Phone Silverlight
Disponibile da 7.0
Windows Phone
Disponibile da 8.1
Torna all'inizio
Mostra: