Dieser Artikel wurde maschinell übersetzt. Wenn Sie die englische Version des Artikels anzeigen möchten, aktivieren Sie das Kontrollkästchen Englisch. Sie können den englischen Text auch in einem Popupfenster anzeigen, indem Sie den Mauszeiger über den Text bewegen.
Übersetzung
Englisch

Enumerable.ToLookup<TSource, TKey, TElement>-Methode: (IEnumerable<TSource>, Func<TSource, TKey>, Func<TSource, TElement>)

 

Veröffentlicht: Oktober 2016

Erstellt eine Lookup<TKey, TElement> aus einem IEnumerable<T> entsprechend der angegebenen Schlüsselauswahlfunktion und Elementauswahlfunktion.

Namespace:   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
)

Parameter

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

Die IEnumerable<T> zum Erstellen einer Lookup<TKey, TElement> aus.

keySelector
Type: System.Func<TSource, TKey>

Eine Funktion zum Extrahieren eines Schlüssels aus jedem Element.

elementSelector
Type: System.Func<TSource, TElement>

Eine Transformierenfunktion, mit der aus jedem Element ein Ergebniselementwert erzeugt wird.

Rückgabewert

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

Ein Lookup<TKey, TElement>, das Werte vom Typ TElement enthält, die aus der Eingabesequenz ausgewählt werden.

Typparameter

TSource

Der Typ der Elemente von source.

TKey

Der Typ des von keySelector zurückgegebenen Schlüssels.

TElement

Der Typ des von elementSelector zurückgegebenen Werts.

Exception Condition
ArgumentNullException

source oder keySelector oder elementSelector ist null.

Die ToLookup<TSource, TKey, TElement>(IEnumerable<TSource>, Func<TSource, TKey>, Func<TSource, TElement>) -Methode gibt ein Lookup<TKey, TElement>, eine 1: n-Wörterbuch, das Sammlungen von Werten Schlüssel zugeordnet ist. Ein Lookup<TKey, TElement> unterscheidet sich von einem Dictionary<TKey, TValue>, das eine 1: 1-Zuordnung von Schlüsseln zu einzelnen Werten ausführt.

Der Standardgleichheitsvergleich Default zum Vergleichen von Schlüsseln verwendet wird.

Im folgenden Codebeispiel wird veranschaulicht, wie Sie ToLookup<TSource, TKey, TElement>(IEnumerable<TSource>, Func<TSource, TKey>, Func<TSource, TElement>) zum Erstellen einer Lookup<TKey, TElement> mithilfe einer Schlüsselauswahlfunktion und einer Elementauswahlfunktion.

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
*/

Universelle Windows-Plattform
Verfügbar seit 8
.NET Framework
Verfügbar seit 3.5
Portierbare Klassenbibliothek
Unterstützt in: portierbare .NET-Plattformen
Silverlight
Verfügbar seit 2.0
Windows Phone Silverlight
Verfügbar seit 7.0
Windows Phone
Verfügbar seit 8.1
Zurück zum Anfang
Anzeigen: