ToLookup(TSource, TKey, TElement) Metodo (IEnumerable(TSource), Func(TSource, TKey), Func(TSource, TElement))
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.ToLookup<TSource, TKey, TElement>(IEnumerable<TSource>, Func<TSource, TKey>, Func<TSource, TElement>)

 

Crea un Lookup<TKey, TElement> da un IEnumerable<T> secondo le funzioni del selettore di elemento e del selettore principale specificata.

Spazio dei nomi:   System.Linq
Assembly:  System.Core (in System.Core.dll)

public static ILookup<TKey, TElement> ToLookup<TSource, TKey, TElement>(
	this IEnumerable<TSource> source,
	Func<TSource, TKey> keySelector,
	Func<TSource, TElement> elementSelector
)

Parametri

source
Type: System.Collections.Generic.IEnumerable<TSource>

Il IEnumerable<T> per creare un Lookup<TKey, TElement> da.

keySelector
Type: System.Func<TSource, TKey>

Funzione per estrarre una chiave da ogni elemento.

elementSelector
Type: System.Func<TSource, TElement>

Funzione di trasformazione per produrre un valore dell'elemento di risultato da ogni elemento.

Valore restituito

Type: System.Linq.ILookup<TKey, TElement>

Oggetto Lookup<TKey, TElement> che contiene valori di tipo TElement selezionati dalla sequenza di input.

Parametri di tipo

TSource

Tipo degli elementi di source.

TKey

Tipo della chiave restituita dall'oggetto keySelector.

TElement

Tipo del valore restituito dall'oggetto elementSelector.

Exception Condition
ArgumentNullException

Il parametro source, il parametro keySelector o il parametro elementSelector è null.

Il ToLookup<TSource, TKey, TElement>(IEnumerable<TSource>, Func<TSource, TKey>, Func<TSource, TElement>) metodo restituisce un Lookup<TKey, TElement>, un dizionario uno-a-molti che esegue il mapping delle chiavi su insiemi di valori. Oggetto Lookup<TKey, TElement> differisce da un Dictionary<TKey, TValue>, che esegue il mapping uno a uno delle chiavi su valori singoli.

Operatore di uguaglianza predefinito Default viene utilizzato per confrontare le chiavi.

Esempio di codice seguente viene illustrato come utilizzare ToLookup<TSource, TKey, TElement>(IEnumerable<TSource>, Func<TSource, TKey>, Func<TSource, TElement>) per creare un Lookup<TKey, TElement> utilizzando una funzione del selettore principale e una funzione selettore di elementi.

class Package
{
    public string Company { get; set; }
    public double Weight { get; set; }
    public long TrackingNumber { get; set; }
}

public static void ToLookupEx1()
{
    // Create a list of Packages.
    List<Package> packages =
        new List<Package>
            { new Package { Company = "Coho Vineyard", 
                  Weight = 25.2, TrackingNumber = 89453312L },
              new Package { Company = "Lucerne Publishing", 
                  Weight = 18.7, TrackingNumber = 89112755L },
              new Package { Company = "Wingtip Toys", 
                  Weight = 6.0, TrackingNumber = 299456122L },
              new Package { Company = "Contoso Pharmaceuticals", 
                  Weight = 9.3, TrackingNumber = 670053128L },
              new Package { Company = "Wide World Importers", 
                  Weight = 33.8, TrackingNumber = 4665518773L } };

    // Create a Lookup to organize the packages. 
    // Use the first character of Company as the key value.
    // Select Company appended to TrackingNumber 
    // as the element values of the Lookup.
    ILookup<char, string> lookup =
        packages
        .ToLookup(p => Convert.ToChar(p.Company.Substring(0, 1)),
                  p => p.Company + " " + p.TrackingNumber);

    // Iterate through each IGrouping in the Lookup.
    foreach (IGrouping<char, string> packageGroup in lookup)
    {
        // Print the key value of the IGrouping.
        Console.WriteLine(packageGroup.Key);
        // Iterate through each value in the 
        // IGrouping and print its value.
        foreach (string str in packageGroup)
            Console.WriteLine("    {0}", str);
    }
}

/*
 This code produces the following output:

 C
     Coho Vineyard 89453312
     Contoso Pharmaceuticals 670053128
 L
     Lucerne Publishing 89112755
 W
     Wingtip Toys 299456122
     Wide World Importers 4665518773
*/

Universal Windows Platform
Disponibile da 8
.NET Framework
Disponibile da 3.5
Portable Class Library
Supportato in: portable .NET platforms
Silverlight
Disponibile da 2.0
Windows Phone Silverlight
Disponibile da 7.0
Windows Phone
Disponibile da 8.1
Torna all'inizio
Mostra:
© 2016 Microsoft