C#Linq的ToDictionary()方法可以将一个IEnumerable集合转换为基于字典的形式。下面是ToDictionary()方法的完整攻略。
ToDictionary()方法概述
public static Dictionary<TKey, TElement> ToDictionary<TSource, TKey, TElement>(
this IEnumerable<TSource> source,
Func<TSource, TKey> keySelector,
Func<TSource, TElement> elementSelector
)
ToDictionary()方法接收三个参数:
- source:待转换的IEnumerable集合;
- keySelector:将集合中的每个元素映射到一个键;
- elementSelector:将集合中的每个元素映射到一个值。
返回一个TKey、TElement类型的字典。
ToDictionary()方法示例
下面提供两个示例说明如何使用ToDictionary()方法。
示例1 - 将整型数组转换为字典
int[] array = new int[] { 1, 2, 3, 4, 5 };
Dictionary<int, int> dict = array.ToDictionary(x => x, x => x * 2);
foreach (var item in dict)
{
Console.WriteLine(item.Key + ":" + item.Value);
}
这段代码将整型数组array转换为字典。键为每个元素本身,值为元素的两倍。 输出结果为:
1:2
2:4
3:6
4:8
5:10
示例2 - 将自定义类对象集合转换为字典
class Person
{
public int Id { get; set; }
public string Name { get; set; }
}
Person[] persons = new Person[]
{
new Person { Id = 1, Name = "Alice" },
new Person { Id = 2, Name = "Bob" },
new Person { Id = 3, Name = "Charlie" }
};
Dictionary<int, string> dict = persons.ToDictionary(x => x.Id, x => x.Name);
foreach (var item in dict)
{
Console.WriteLine(item.Key + ":" + item.Value);
}
这段代码将Person类对象集合转换为字典。键为每个Person对象的Id属性,值为每个Person对象的Name属性。输出结果为:
1:Alice
2:Bob
3:Charlie
总结
ToDictionary()方法是Linq中非常常用的一个方法,能够方便地实现将一个集合转换为字典的操作。正确使用该方法可以有效提高代码的可读性和简洁性。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:C# Linq的ToDictionary()方法 – 将序列转换为字典 - Python技术站