本文由机器翻译。若要查看英语原文,请勾选“英语”复选框。 也可将鼠标指针移到文本上,在弹出窗口中显示英语原文。
翻译
英语

Enumerable.ToDictionary<TSource, TKey> 方法 (IEnumerable<TSource>, Func<TSource, TKey>)

 

创建 Dictionary<TKey, TValue>IEnumerable<T> 根据指定的键选择器函数。

命名空间:   System.Linq
程序集:  System.Core(位于 System.Core.dll)

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

参数

source
Type: System.Collections.Generic.IEnumerable<TSource>

IEnumerable<T> 创建 Dictionary<TKey, TValue> 从。

keySelector
Type: System.Func<TSource, TKey>

用于从每个元素中提取键的函数。

返回值

Type: System.Collections.Generic.Dictionary<TKey, TSource>

一个 Dictionary<TKey, TValue> ,其中包含键和值。

类型参数

TSource

中的元素的类型 source

TKey

返回的键的类型 keySelector

Exception Condition
ArgumentNullException

sourcekeySelectornull

- 或 -

keySelector 生成的密钥 null

ArgumentException

keySelector 生成两个元素的键重复。

ToDictionary<TSource, TKey>(IEnumerable<TSource>, Func<TSource, TKey>) 方法使用默认的相等比较 Default 对键进行比较。

下面的代码示例演示如何使用 ToDictionary<TSource, TKey>(IEnumerable<TSource>, Func<TSource, TKey>) 创建 Dictionary<TKey, TValue> 通过使用键选择器。

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

通用 Windows 平台
自 8 起可用
.NET Framework
自 3.5 起可用
可移植类库
可移植 .NET 平台 中受支持
Silverlight
自 2.0 起可用
Windows Phone Silverlight
自 7.0 起可用
Windows Phone
自 8.1 起可用
返回页首
显示: