Esporta (0) Stampa
Espandi tutto
Il presente articolo è stato tradotto automaticamente. Passare il puntatore sulle frasi nell'articolo per visualizzare il testo originale. Ulteriori informazioni.
Traduzione
Originale

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

Correla gli elementi di due sequenze in base all'uguaglianza delle chiavi e raggruppa i risultati. Viene utilizzato un oggetto IEqualityComparer<T> specificato per confrontare le chiavi.

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 di 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.

Parametri

outer
Tipo: System.Collections.Generic.IEnumerable<TOuter>
Prima sequenza da unire.
inner
Tipo: System.Collections.Generic.IEnumerable<TInner>
Sequenza da unire alla prima sequenza.
outerKeySelector
Tipo: System.Func<TOuter, TKey>
Funzione per estrarre la chiave di aggiunta da ogni elemento della prima sequenza.
innerKeySelector
Tipo: System.Func<TInner, TKey>
Funzione per estrarre la chiave di aggiunta da ogni elemento della seconda sequenza.
resultSelector
Tipo: 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
Tipo: System.Collections.Generic.IEqualityComparer<TKey>
Un oggetto IEqualityComparer<T> per la codifica hash e il confronto delle chiavi.

Valore restituito

Tipo: System.Collections.Generic.IEnumerable<TResult>
Oggetto IEnumerable<T> che contiene elementi di tipo TResult ottenuti eseguendo un'aggiunta raggruppata delle due sequenze.

Nota sull'utilizzo

In Visual Basic e C# è possibile chiamare questo metodo come metodo di istanza su qualsiasi oggetto di tipo IEnumerable<TOuter>. Per chiamare il metodo utilizzando la sintassi del metodo di istanza, omettere il primo parametro. Per ulteriori informazioni, vedere Metodi di estensione (Visual Basic) o Metodi di estensione (Guida per programmatori C#).

EccezioneCondizione
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 contiene tutte le informazioni necessarie all'esecuzione dell'azione. La query rappresentata da questo metodo non viene eseguita finché l'oggetto non viene enumerato tramite chiamata diretta al relativo metodo GetEnumerator o utilizzando l'oggetto foreach in Visual C# oppure For Each in Visual Basic.

Se comparer è null, per la codifica hash e il confronto delle chiavi viene utilizzato l'operatore di confronto uguaglianze predefinito Default.

GroupJoin produce risultati gerarchici per cui gli elementi da outer vengono abbinati agli insiemi di elementi corrispondenti da inner. GroupJoin consente di ottenere risultati sulla base di un insieme intero di corrispondenze per ogni elemento di outer.

NotaNota

Se non ci sono elementi correlati in inner per un elemento specificato di outer, la sequenza di corrispondenze per tale elemento sarà vuota ma sarà comunque presente nei risultati.

La funzione resultSelector viene chiamata solo una volta per ogni elemento outer con una raccolta di tutti gli elementi inner che corrispondono all'elemento outer. Questo comportamento è diverso da quello del metodo Join, in cui la funzione del selettore di risultato viene richiamata 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 di outer, l'ordine degli elementi corrispondenti di inner.

GroupJoin non ha un equivalente diretto in termini di database relazionale tradizionale. Tuttavia, questo metodo implementa un superset di inner join e di left outer join. Entrambe queste operazioni possono essere scritte in termini di join raggruppato. Vedere Operazioni di join.

.NET Framework

Supportato in: 4.5.2, 4.5.1, 4.5, 4, 3.5

.NET Framework Client Profile

Supportato in: 4, 3.5 SP1

Libreria di classi portabile

Supportato in: Libreria di classi portabile

.NET per applicazioni Windows Store

Supportato in: Windows 8

.NET per applicazioni Windows Phone

Supportato 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 (ruoli di base del server non supportati), Windows Server 2008 R2 (ruoli di base del server supportati con SP1 o versione successiva, Itanium non supportato)

.NET Framework non supporta tutte le versioni di ciascuna piattaforma. Per un elenco delle versioni supportate, vedere Requisiti di sistema di .NET Framework.

Aggiunte alla community

AGGIUNGI
Mostra:
© 2014 Microsoft