ToLookup(TSource, TKey, TElement) Metodo (IEnumerable(TSource), Func(TSource, TKey), Func(TSource, TElement))
Il presente articolo è stato tradotto automaticamente. Passare il puntatore sulle frasi nell'articolo per visualizzare il testo originale. Ulteriori informazioni.
Traduzione
Originale

Metodo Enumerable.ToLookup<TSource, TKey, TElement>(IEnumerable<TSource>, Func<TSource, TKey>, Func<TSource, TElement>)

 

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

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

Oggetto IEnumerable<T> da creare a partire da Lookup<TKey, TElement>.

keySelector

Funzione per estrarre una chiave da ogni elemento.

elementSelector

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 del 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

source o keySelector o elementSelector è null.

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

Per il confronto delle chiavi viene utilizzato l'operatore di confronto uguaglianze predefinito Default.

Nell'esempio di codice riportato di seguito viene illustrato come utilizzare l'oggetto ToLookup<TSource, TKey, TElement>(IEnumerable<TSource>, Func<TSource, TKey>, Func<TSource, TElement>) per creare un oggetto Lookup<TKey, TElement> utilizzando una funzione del selettore principale e una funzione del 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 4.5
.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