(0) exportieren Drucken
Alle erweitern
Dieser Artikel wurde maschinell übersetzt. Bewegen Sie den Mauszeiger über die Sätze im Artikel, um den Originaltext anzuzeigen. Weitere Informationen
Übersetzung
Original

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

Erstellt ein 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
)

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.

Parameter

source
Typ: System.Collections.Generic.IEnumerable<TSource>
Das IEnumerable<T>, aus dem ein Lookup<TKey, TElement> erstellt werden soll.
keySelector
Typ: System.Func<TSource, TKey>
Eine Funktion zum Extrahieren eines Schlüssels aus jedem Element.
elementSelector
Typ: System.Func<TSource, TElement>
Eine Transformationsfunktion, mit der aus jedem Element ein Ergebniselementwert erzeugt wird.

Rückgabewert

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

Hinweis zur Verwendung

In Visual Basic und C# können Sie diese Methode als Instanzenmethode für ein beliebiges Objekt vom Typ IEnumerable<TSource> aufrufen. Bei Verwendung der Syntax für Instanzenmethoden lassen Sie den ersten Parameter aus. Weitere Informationen finden Sie unter Erweiterungsmethoden (Visual Basic) und Erweiterungsmethoden (C#-Programmierhandbuch).

AusnahmeBedingung
ArgumentNullException

source, keySelector oder elementSelector ist null.

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

Schlüssel werden mithilfe des Standardgleichheitsvergleichs Default verglichen.

Das folgende Codebeispiel veranschaulicht, wie ToLookup<TSource, TKey, TElement>(IEnumerable<TSource>, Func<TSource, TKey>, Func<TSource, TElement>) verwendet wird, um mit einer Schlüsselauswahlfunktion und einer Elementauswahlfunktion ein Lookup<TKey, TElement> zu erstellen.


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



.NET Framework

Unterstützt in: 4.5.2, 4.5.1, 4.5, 4, 3.5

.NET Framework Client Profile

Unterstützt in: 4, 3.5 SP1

Portable Klassenbibliothek

Unterstützt in: Portable Klassenbibliothek

.NET für Windows Store-Apps

Unterstützt in: Windows 8

.NET für Windows Phone-Apps

Unterstützt 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 (Server Core-Rolle wird nicht unterstützt), Windows Server 2008 R2 (Server Core-Rolle wird mit SP1 oder höher unterstützt; Itanium wird nicht unterstützt)

.NET Framework unterstützt nicht alle Versionen sämtlicher Plattformen. Eine Liste der unterstützten Versionen finden Sie unter Systemanforderungen für .NET Framework.

Community-Beiträge

HINZUFÜGEN
Anzeigen:
© 2014 Microsoft