Informationen
Das angeforderte Thema wird unten angezeigt. Es ist jedoch nicht in dieser Bibliothek vorhanden.

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

Erstellt ein Dictionary<TKey, TValue> aus einem IEnumerable<T> gemäß einer angegebenen Schlüsselauswahlfunktion.

Namespace:  System.Linq
Assembly:  System.Core (in System.Core.dll)

public static Dictionary<TKey, TSource> ToDictionary<TSource, TKey>(
	this IEnumerable<TSource> source,
	Func<TSource, TKey> keySelector
)

Typparameter

TSource

Der Typ der Elemente von source.

TKey

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

Parameter

source
Typ: System.Collections.Generic.IEnumerable<TSource>
Ein IEnumerable<T>, aus dem ein Dictionary<TKey, TValue> erstellt werden soll.
keySelector
Typ: System.Func<TSource, TKey>
Eine Funktion zum Extrahieren eines Schlüssels aus jedem Element.

Rückgabewert

Typ: System.Collections.Generic.Dictionary<TKey, TSource>
Ein Dictionary<TKey, TValue>, das Schlüssel und Werte enthält.

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 oder keySelector ist null.

- oder -

keySelector erzeugt einen Schlüssel, der null ist.

ArgumentException

keySelector erzeugt für zwei Elemente doppelte Schlüssel.

Die ToDictionary<TSource, TKey>(IEnumerable<TSource>, Func<TSource, TKey>)-Methode vergleicht Schlüssel mithilfe des Standardgleichheitsvergleichs Default.

Im folgenden Codebeispiel wird gezeigt, wie mithilfe von ToDictionary<TSource, TKey>(IEnumerable<TSource>, Func<TSource, TKey>) und einer Schlüsselauswahl ein Dictionary<TKey, TValue> erstellt wird.


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

            public static void ToDictionaryEx1()
            {
                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 = "Adventure Works", Weight = 33.8, TrackingNumber = 4665518773L } };

                // Create a Dictionary of Package objects, 
                // using TrackingNumber as the key.
                Dictionary<long, Package> dictionary =
                    packages.ToDictionary(p => p.TrackingNumber);

                foreach (KeyValuePair<long, Package> kvp in dictionary)
                {
                    Console.WriteLine(
                        "Key {0}: {1}, {2} pounds",
                        kvp.Key,
                        kvp.Value.Company,
                        kvp.Value.Weight);
                }
            }

            /*
             This code produces the following output:

             Key 89453312: Coho Vineyard, 25.2 pounds
             Key 89112755: Lucerne Publishing, 18.7 pounds
             Key 299456122: Wingtip Toys, 6 pounds
             Key 4665518773: Adventure Works, 33.8 pounds
            */



.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

Anzeigen:
© 2014 Microsoft