Enumerable.ToDictionary Metod
Definition
Viktigt
En del information gäller för förhandsversionen av en produkt och kan komma att ändras avsevärt innan produkten blir allmänt tillgänglig. Microsoft lämnar inga garantier, uttryckliga eller underförstådda, avseende informationen som visas här.
Skapar en Dictionary<TKey,TValue> från en IEnumerable<T>.
Ö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
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
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
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
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.