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.Join<TOuter, TInner, TKey, TResult> (IEnumerable<TOuter>, IEnumerable<TInner>, Func<TOuter, TKey>, Func<TInner, TKey>, Func<TOuter, TInner, TResult>, IEqualityComparer<TKey>)

Correla gli elementi di due sequenze in base alle chiavi corrispondenti. 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> Join<TOuter, TInner, TKey, TResult>(
	this IEnumerable<TOuter> outer,
	IEnumerable<TInner> inner,
	Func<TOuter, TKey> outerKeySelector,
	Func<TInner, TKey> innerKeySelector,
	Func<TOuter, 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, TInner, TResult>
Funzione per creare un elemento di risultato da due elementi corrispondenti.
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 inner join sulle 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.

Un join fa riferimento all'operazione di correlare gli elementi di due origini di informazioni in base a una chiave comune. Join riporta le due fonti di informazioni e le chiavi in base alle quali sono poste in corrispondenza in una chiamata al metodo. Questo è diverso dall'utilizzare SelectMany, che richiede più di una chiamata al metodo per eseguire la stessa operazione.

Join mantiene l'ordine degli elementi di outer e, per ognuno di questi elementi, l'ordine degli elementi corrispondenti di inner.

In termini di database relazionale, il metodo Join implementa un inner equijoin. 'Inner' significa che solo gli elementi che hanno una corrispondenza nell'altra sequenza vengono inclusi nei risultati. Un 'equijoin' è un join in cui viene verificata l’uguaglianza delle chiavi. Un'operazione di left outer join non dispone di un operatore di query standard dedicato, ma può essere eseguita utilizzando il metodo GroupJoin. 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