Enumerable.ToDictionary Metod

Definition

Överlagringar

Name Description
ToDictionary<TSource,TKey,TElement>(IEnumerable<TSource>, Func<TSource,TKey>, Func<TSource,TElement>)

Skapar en Dictionary<TKey,TValue> från en IEnumerable<T> enligt angivna funktioner för nyckelväljare och elementväljare.

ToDictionary<TSource,TKey,TElement>(IEnumerable<TSource>, Func<TSource,TKey>, Func<TSource,TElement>, IEqualityComparer<TKey>)

Skapar en Dictionary<TKey,TValue> från en IEnumerable<T> enligt en angiven nyckelväljare, en jämförelsefunktion och en elementväljare.

ToDictionary<TSource,TKey>(IEnumerable<TSource>, Func<TSource,TKey>)

Skapar en Dictionary<TKey,TValue> från en IEnumerable<T> enligt en angiven nyckelväljare.

ToDictionary<TSource,TKey>(IEnumerable<TSource>, Func<TSource,TKey>, IEqualityComparer<TKey>)

Skapar en Dictionary<TKey,TValue> från en IEnumerable<T> enligt en angiven nyckelväljare och nyckeljäxare.

ToDictionary<TSource,TKey,TElement>(IEnumerable<TSource>, Func<TSource,TKey>, Func<TSource,TElement>)

Skapar en Dictionary<TKey,TValue> från en IEnumerable<T> enligt angivna funktioner för nyckelväljare och elementväljare.

public:
generic <typename TSource, typename TKey, typename TElement>
[System::Runtime::CompilerServices::Extension]
 static System::Collections::Generic::Dictionary<TKey, TElement> ^ ToDictionary(System::Collections::Generic::IEnumerable<TSource> ^ source, Func<TSource, TKey> ^ keySelector, Func<TSource, TElement> ^ elementSelector);
public static System.Collections.Generic.Dictionary<TKey,TElement> ToDictionary<TSource,TKey,TElement>(this System.Collections.Generic.IEnumerable<TSource> source, Func<TSource,TKey> keySelector, Func<TSource,TElement> elementSelector);
static member ToDictionary : seq<'Source> * Func<'Source, 'Key> * Func<'Source, 'Element> -> System.Collections.Generic.Dictionary<'Key, 'Element>
<Extension()>
Public Function ToDictionary(Of TSource, TKey, TElement) (source As IEnumerable(Of TSource), keySelector As Func(Of TSource, TKey), elementSelector As Func(Of TSource, TElement)) As Dictionary(Of TKey, TElement)

Typparametrar

TSource

Typen av element sourcei .

TKey

Typ av nyckel som returneras av keySelector.

TElement

Typen av värde som returneras av elementSelector.

Parametrar

source
IEnumerable<TSource>

En IEnumerable<T> att skapa en Dictionary<TKey,TValue> från.

keySelector
Func<TSource,TKey>

En funktion för att extrahera en nyckel från varje element.

elementSelector
Func<TSource,TElement>

En transformeringsfunktion för att skapa ett resultatelementvärde från varje element.

Returer

Dictionary<TKey,TElement>

En Dictionary<TKey,TValue> som innehåller värden av den typ TElement som valts från indatasekvensen.

Undantag

source eller keySelector är elementSelectornull.

-eller-

keySelector skapar en nyckel som är null.

keySelector skapar dubblettnycklar för två element.

Kommentarer

Metoden ToDictionary<TSource,TKey,TElement>(IEnumerable<TSource>, Func<TSource,TKey>, Func<TSource,TElement>) använder standardjämförlikningsjämföraren Default för att jämföra nycklar.

Gäller för

ToDictionary<TSource,TKey,TElement>(IEnumerable<TSource>, Func<TSource,TKey>, Func<TSource,TElement>, IEqualityComparer<TKey>)

Skapar en Dictionary<TKey,TValue> från en IEnumerable<T> enligt en angiven nyckelväljare, en jämförelsefunktion och en elementväljare.

public:
generic <typename TSource, typename TKey, typename TElement>
[System::Runtime::CompilerServices::Extension]
 static System::Collections::Generic::Dictionary<TKey, TElement> ^ ToDictionary(System::Collections::Generic::IEnumerable<TSource> ^ source, Func<TSource, TKey> ^ keySelector, Func<TSource, TElement> ^ elementSelector, System::Collections::Generic::IEqualityComparer<TKey> ^ comparer);
public static System.Collections.Generic.Dictionary<TKey,TElement> ToDictionary<TSource,TKey,TElement>(this System.Collections.Generic.IEnumerable<TSource> source, Func<TSource,TKey> keySelector, Func<TSource,TElement> elementSelector, System.Collections.Generic.IEqualityComparer<TKey> comparer);
static member ToDictionary : seq<'Source> * Func<'Source, 'Key> * Func<'Source, 'Element> * System.Collections.Generic.IEqualityComparer<'Key> -> System.Collections.Generic.Dictionary<'Key, 'Element>
<Extension()>
Public Function ToDictionary(Of TSource, TKey, TElement) (source As IEnumerable(Of TSource), keySelector As Func(Of TSource, TKey), elementSelector As Func(Of TSource, TElement), comparer As IEqualityComparer(Of TKey)) As Dictionary(Of TKey, TElement)

Typparametrar

TSource

Typen av element sourcei .

TKey

Typ av nyckel som returneras av keySelector.

TElement

Typen av värde som returneras av elementSelector.

Parametrar

source
IEnumerable<TSource>

En IEnumerable<T> att skapa en Dictionary<TKey,TValue> från.

keySelector
Func<TSource,TKey>

En funktion för att extrahera en nyckel från varje element.

elementSelector
Func<TSource,TElement>

En transformeringsfunktion för att skapa ett resultatelementvärde från varje element.

comparer
IEqualityComparer<TKey>

En IEqualityComparer<T> för att jämföra nycklar.

Returer

Dictionary<TKey,TElement>

En Dictionary<TKey,TValue> som innehåller värden av den typ TElement som valts från indatasekvensen.

Undantag

source eller keySelector är elementSelectornull.

-eller-

keySelector skapar en nyckel som är null.

keySelector skapar dubblettnycklar för två element.

Kommentarer

Om comparer är nullanvänds standardjämlikhetsjämföraren Default för att jämföra nycklar.

Gäller för

ToDictionary<TSource,TKey>(IEnumerable<TSource>, Func<TSource,TKey>)

Skapar en Dictionary<TKey,TValue> från en IEnumerable<T> enligt en angiven nyckelväljare.

public:
generic <typename TSource, typename TKey>
[System::Runtime::CompilerServices::Extension]
 static System::Collections::Generic::Dictionary<TKey, TSource> ^ ToDictionary(System::Collections::Generic::IEnumerable<TSource> ^ source, Func<TSource, TKey> ^ keySelector);
public static System.Collections.Generic.Dictionary<TKey,TSource> ToDictionary<TSource,TKey>(this System.Collections.Generic.IEnumerable<TSource> source, Func<TSource,TKey> keySelector);
static member ToDictionary : seq<'Source> * Func<'Source, 'Key> -> System.Collections.Generic.Dictionary<'Key, 'Source>
<Extension()>
Public Function ToDictionary(Of TSource, TKey) (source As IEnumerable(Of TSource), keySelector As Func(Of TSource, TKey)) As Dictionary(Of TKey, TSource)

Typparametrar

TSource

Typen av element sourcei .

TKey

Typ av nyckel som returneras av keySelector.

Parametrar

source
IEnumerable<TSource>

En IEnumerable<T> att skapa en Dictionary<TKey,TValue> från.

keySelector
Func<TSource,TKey>

En funktion för att extrahera en nyckel från varje element.

Returer

Dictionary<TKey,TSource>

A Dictionary<TKey,TValue> som innehåller nycklar och värden. Värdena i varje grupp är i samma ordning som i source.

Undantag

source eller keySelector är null.

-eller-

keySelector skapar en nyckel som är null.

keySelector skapar dubblettnycklar för två element.

Exempel

Följande kodexempel visar hur du använder ToDictionary<TSource,TKey>(IEnumerable<TSource>, Func<TSource,TKey>) för att skapa en Dictionary<TKey,TValue> med hjälp av en nyckelväljare.

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
*/
Structure Package
    Public Company As String
    Public Weight As Double
    Public TrackingNumber As Long
End Structure

Sub ToDictionaryEx1()
    ' Create a list of Package values.
    Dim packages As New List(Of Package)(New Package() _
     {New Package With
      {.Company = "Coho Vineyard", .Weight = 25.2, .TrackingNumber = 89453312L},
      New Package With
      {.Company = "Lucerne Publishing", .Weight = 18.7, .TrackingNumber = 89112755L},
      New Package With
      {.Company = "Wingtip Toys", .Weight = 6.0, .TrackingNumber = 299456122L},
      New Package With
      {.Company = "Adventure Works", .Weight = 33.8, .TrackingNumber = 4665518773L}})

    ' Create a Dictionary that contains Package values,
    ' using TrackingNumber as the key.
    Dim dict As Dictionary(Of Long, Package) =
    packages.ToDictionary(Function(p) p.TrackingNumber)

    ' Display the results.
    Dim output As New System.Text.StringBuilder
    For Each kvp As KeyValuePair(Of Long, Package) In dict
        output.AppendLine("Key " & kvp.Key & ": " &
                      kvp.Value.Company & ", " &
                      kvp.Value.Weight & " pounds")
    Next
    Console.WriteLine(output.ToString())
End Sub

' 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

Kommentarer

Metoden ToDictionary<TSource,TKey>(IEnumerable<TSource>, Func<TSource,TKey>) använder standardjämförlikningsjämföraren Default för att jämföra nycklar.

Gäller för

ToDictionary<TSource,TKey>(IEnumerable<TSource>, Func<TSource,TKey>, IEqualityComparer<TKey>)

Skapar en Dictionary<TKey,TValue> från en IEnumerable<T> enligt en angiven nyckelväljare och nyckeljäxare.

public:
generic <typename TSource, typename TKey>
[System::Runtime::CompilerServices::Extension]
 static System::Collections::Generic::Dictionary<TKey, TSource> ^ ToDictionary(System::Collections::Generic::IEnumerable<TSource> ^ source, Func<TSource, TKey> ^ keySelector, System::Collections::Generic::IEqualityComparer<TKey> ^ comparer);
public static System.Collections.Generic.Dictionary<TKey,TSource> ToDictionary<TSource,TKey>(this System.Collections.Generic.IEnumerable<TSource> source, Func<TSource,TKey> keySelector, System.Collections.Generic.IEqualityComparer<TKey> comparer);
static member ToDictionary : seq<'Source> * Func<'Source, 'Key> * System.Collections.Generic.IEqualityComparer<'Key> -> System.Collections.Generic.Dictionary<'Key, 'Source>
<Extension()>
Public Function ToDictionary(Of TSource, TKey) (source As IEnumerable(Of TSource), keySelector As Func(Of TSource, TKey), comparer As IEqualityComparer(Of TKey)) As Dictionary(Of TKey, TSource)

Typparametrar

TSource

Typen av element sourcei .

TKey

Typen av nycklar som returneras av keySelector.

Parametrar

source
IEnumerable<TSource>

En IEnumerable<T> att skapa en Dictionary<TKey,TValue> från.

keySelector
Func<TSource,TKey>

En funktion för att extrahera en nyckel från varje element.

comparer
IEqualityComparer<TKey>

En IEqualityComparer<T> för att jämföra nycklar.

Returer

Dictionary<TKey,TSource>

A Dictionary<TKey,TValue> som innehåller nycklar och värden. Värdena i varje grupp är i samma ordning som i source.

Undantag

source eller keySelector är null.

-eller-

keySelector skapar en nyckel som är null.

keySelector skapar dubblettnycklar för två element.

Kommentarer

Om comparer är nullanvänds standardjämlikhetsjämföraren Default för att jämföra nycklar.

Gäller för