Enumerable.ToDictionary 方法

定義

多載

ToDictionary<TKey,TValue>(IEnumerable<ValueTuple<TKey,TValue>>, IEqualityComparer<TKey>)

根據指定的索引鍵相等比較子,從列舉建立字典。

ToDictionary<TKey,TValue>(IEnumerable<KeyValuePair<TKey,TValue>>, IEqualityComparer<TKey>)

根據指定的索引鍵比較子,從列舉建立字典。

ToDictionary<TKey,TValue>(IEnumerable<KeyValuePair<TKey,TValue>>)

根據索引鍵類型的預設比較子,從列舉建立字典。

ToDictionary<TKey,TValue>(IEnumerable<ValueTuple<TKey,TValue>>)

根據索引鍵類型的預設比較子,從列舉建立字典。

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

根據指定的索引鍵選取器和項目選取器函式,從 Dictionary<TKey,TValue> 建立 IEnumerable<T>

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

根據指定的索引鍵選取器函式、比較子和項目選取器函式,從 Dictionary<TKey,TValue> 建立 IEnumerable<T>

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

根據指定的索引鍵選擇器函式,從 Dictionary<TKey,TValue> 建立 IEnumerable<T>

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

根據指定的索引鍵選取器函式和索引鍵比較子,從 Dictionary<TKey,TValue> 建立 IEnumerable<T>

ToDictionary<TKey,TValue>(IEnumerable<ValueTuple<TKey,TValue>>, IEqualityComparer<TKey>)

來源:
ToCollection.cs
來源:
ToCollection.cs

根據指定的索引鍵相等比較子,從列舉建立字典。

C#
public static System.Collections.Generic.Dictionary<TKey,TValue> ToDictionary<TKey,TValue> (this System.Collections.Generic.IEnumerable<(TKey Key, TValue Value)> source, System.Collections.Generic.IEqualityComparer<TKey>? comparer);

類型參數

TKey

專案的 source索引鍵型別。

TValue

專案的 source值型別。

參數

source
IEnumerable<ValueTuple<TKey,TValue>>

要從中建立字典的列舉。

comparer
IEqualityComparer<TKey>

比較索引鍵的相等比較子。

傳回

字典,其中包含的 source索引鍵和值。

例外狀況

sourcenull 參考。

source 包含一或多個重複的索引鍵。

備註

如果 為 comparernull,則會使用預設相等比較子 Default 來比較索引鍵。

適用於

.NET 9 和 .NET 8
產品 版本
.NET 8, 9

ToDictionary<TKey,TValue>(IEnumerable<KeyValuePair<TKey,TValue>>, IEqualityComparer<TKey>)

來源:
ToCollection.cs
來源:
ToCollection.cs

根據指定的索引鍵比較子,從列舉建立字典。

C#
public static System.Collections.Generic.Dictionary<TKey,TValue> ToDictionary<TKey,TValue> (this System.Collections.Generic.IEnumerable<System.Collections.Generic.KeyValuePair<TKey,TValue>> source, System.Collections.Generic.IEqualityComparer<TKey>? comparer);

類型參數

TKey

專案的 source索引鍵型別。

TValue

專案的 source值型別。

參數

source
IEnumerable<KeyValuePair<TKey,TValue>>

要從中建立字典的列舉。

comparer
IEqualityComparer<TKey>

比較索引鍵的相等比較子。

傳回

字典,其中包含的 source索引鍵和值。

例外狀況

sourcenull 參考。

source 包含一或多個重複的索引鍵。

備註

如果 為 comparernull,則會使用預設相等比較子 Default 來比較索引鍵。

適用於

.NET 9 和 .NET 8
產品 版本
.NET 8, 9

ToDictionary<TKey,TValue>(IEnumerable<KeyValuePair<TKey,TValue>>)

來源:
ToCollection.cs
來源:
ToCollection.cs

根據索引鍵類型的預設比較子,從列舉建立字典。

C#
public static System.Collections.Generic.Dictionary<TKey,TValue> ToDictionary<TKey,TValue> (this System.Collections.Generic.IEnumerable<System.Collections.Generic.KeyValuePair<TKey,TValue>> source);

類型參數

TKey

專案的 source索引鍵型別。

TValue

專案的 source值型別。

參數

source
IEnumerable<KeyValuePair<TKey,TValue>>

要從中建立字典的列舉。

傳回

字典,其中包含的 source 索引鍵和值,並使用索引鍵類型的預設比較子。

例外狀況

sourcenull 參考。

source 包含一或多個重複的索引鍵。

適用於

.NET 9 和 .NET 8
產品 版本
.NET 8, 9

ToDictionary<TKey,TValue>(IEnumerable<ValueTuple<TKey,TValue>>)

來源:
ToCollection.cs
來源:
ToCollection.cs

根據索引鍵類型的預設比較子,從列舉建立字典。

C#
public static System.Collections.Generic.Dictionary<TKey,TValue> ToDictionary<TKey,TValue> (this System.Collections.Generic.IEnumerable<(TKey Key, TValue Value)> source);

類型參數

TKey

專案的 source索引鍵型別。

TValue

專案的 source值型別。

參數

source
IEnumerable<ValueTuple<TKey,TValue>>

要從中建立字典的列舉。

傳回

包含索引 source 鍵和值的字典,並使用索引鍵類型的預設比較子。

例外狀況

sourcenull 參考。

source 包含一或多個重複的索引鍵。

適用於

.NET 9 和 .NET 8
產品 版本
.NET 8, 9

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

來源:
ToCollection.cs
來源:
ToCollection.cs
來源:
ToCollection.cs

根據指定的索引鍵選取器和項目選取器函式,從 Dictionary<TKey,TValue> 建立 IEnumerable<T>

C#
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);

類型參數

TSource

source 項目的類型。

TKey

keySelector 所傳回之索引鍵的型別。

TElement

elementSelector 所傳回值的型別。

參數

source
IEnumerable<TSource>

用來建立 Dictionary<TKey,TValue> 的來源 IEnumerable<T>

keySelector
Func<TSource,TKey>

用來從各個項目擷取索引鍵的函式。

elementSelector
Func<TSource,TElement>

用來從每個項目產生結果項目值的轉換函式。

傳回

Dictionary<TKey,TElement>

Dictionary<TKey,TValue>,包含從輸入序列選取之 TElement 類型的值。

例外狀況

sourcekeySelectorelementSelectornull

-或-

keySelector 產生的索引鍵為 null

keySelector 產生兩個項目的重複索引鍵。

備註

方法 ToDictionary<TSource,TKey,TElement>(IEnumerable<TSource>, Func<TSource,TKey>, Func<TSource,TElement>) 會使用預設相等比較子 Default 來比較索引鍵。

適用於

.NET 9 和其他版本
產品 版本
.NET Core 1.0, Core 1.1, Core 2.0, Core 2.1, Core 2.2, Core 3.0, Core 3.1, 5, 6, 7, 8, 9
.NET Framework 3.5, 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1
.NET Standard 1.0, 1.1, 1.2, 1.3, 1.4, 1.6, 2.0, 2.1
UWP 10.0

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

來源:
ToCollection.cs
來源:
ToCollection.cs
來源:
ToCollection.cs

根據指定的索引鍵選取器函式、比較子和項目選取器函式,從 Dictionary<TKey,TValue> 建立 IEnumerable<T>

C#
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);
C#
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);

類型參數

TSource

source 項目的類型。

TKey

keySelector 所傳回之索引鍵的型別。

TElement

elementSelector 所傳回值的型別。

參數

source
IEnumerable<TSource>

用來建立 Dictionary<TKey,TValue> 的來源 IEnumerable<T>

keySelector
Func<TSource,TKey>

用來從各個項目擷取索引鍵的函式。

elementSelector
Func<TSource,TElement>

用來從每個項目產生結果項目值的轉換函式。

comparer
IEqualityComparer<TKey>

用來比較金鑰的 IEqualityComparer<T>

傳回

Dictionary<TKey,TElement>

Dictionary<TKey,TValue>,包含從輸入序列選取之 TElement 類型的值。

例外狀況

sourcekeySelectorelementSelectornull

-或-

keySelector 產生的索引鍵為 null

keySelector 產生兩個項目的重複索引鍵。

備註

如果 為 comparernull,則會使用預設相等比較子 Default 來比較索引鍵。

適用於

.NET 9 和其他版本
產品 版本
.NET Core 1.0, Core 1.1, Core 2.0, Core 2.1, Core 2.2, Core 3.0, Core 3.1, 5, 6, 7, 8, 9
.NET Framework 3.5, 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1
.NET Standard 1.0, 1.1, 1.2, 1.3, 1.4, 1.6, 2.0, 2.1
UWP 10.0

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

來源:
ToCollection.cs
來源:
ToCollection.cs
來源:
ToCollection.cs

根據指定的索引鍵選擇器函式,從 Dictionary<TKey,TValue> 建立 IEnumerable<T>

C#
public static System.Collections.Generic.Dictionary<TKey,TSource> ToDictionary<TSource,TKey> (this System.Collections.Generic.IEnumerable<TSource> source, Func<TSource,TKey> keySelector);

類型參數

TSource

source 項目的類型。

TKey

keySelector 所傳回之索引鍵的型別。

參數

source
IEnumerable<TSource>

用來建立 Dictionary<TKey,TValue> 的來源 IEnumerable<T>

keySelector
Func<TSource,TKey>

用來從各個項目擷取索引鍵的函式。

傳回

Dictionary<TKey,TSource>

包含索引鍵和值的 Dictionary<TKey,TValue>。 每個群組中的值與 source 中的順序相同。

例外狀況

sourcekeySelectornull

-或-

keySelector 產生的索引鍵為 null

keySelector 產生兩個項目的重複索引鍵。

範例

下列程式代碼範例示範如何使用 ToDictionary<TSource,TKey>(IEnumerable<TSource>, Func<TSource,TKey>) 索引鍵選取器來建立 Dictionary<TKey,TValue>

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

備註

方法 ToDictionary<TSource,TKey>(IEnumerable<TSource>, Func<TSource,TKey>) 會使用預設相等比較子 Default 來比較索引鍵。

適用於

.NET 9 和其他版本
產品 版本
.NET Core 1.0, Core 1.1, Core 2.0, Core 2.1, Core 2.2, Core 3.0, Core 3.1, 5, 6, 7, 8, 9
.NET Framework 3.5, 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1
.NET Standard 1.0, 1.1, 1.2, 1.3, 1.4, 1.6, 2.0, 2.1
UWP 10.0

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

來源:
ToCollection.cs
來源:
ToCollection.cs
來源:
ToCollection.cs

根據指定的索引鍵選取器函式和索引鍵比較子,從 Dictionary<TKey,TValue> 建立 IEnumerable<T>

C#
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);
C#
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);

類型參數

TSource

source 項目的類型。

TKey

keySelector 所傳回之索引鍵的型別。

參數

source
IEnumerable<TSource>

用來建立 Dictionary<TKey,TValue> 的來源 IEnumerable<T>

keySelector
Func<TSource,TKey>

用來從各個項目擷取索引鍵的函式。

comparer
IEqualityComparer<TKey>

用來比較金鑰的 IEqualityComparer<T>

傳回

Dictionary<TKey,TSource>

包含索引鍵和值的 Dictionary<TKey,TValue>。 每個群組中的值與 source 中的順序相同。

例外狀況

sourcekeySelectornull

-或-

keySelector 產生的索引鍵為 null

keySelector 產生兩個項目的重複索引鍵。

備註

如果 為 comparernull,則會使用預設相等比較子 Default 來比較索引鍵。

適用於

.NET 9 和其他版本
產品 版本
.NET Core 1.0, Core 1.1, Core 2.0, Core 2.1, Core 2.2, Core 3.0, Core 3.1, 5, 6, 7, 8, 9
.NET Framework 3.5, 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1
.NET Standard 1.0, 1.1, 1.2, 1.3, 1.4, 1.6, 2.0, 2.1
UWP 10.0