使用Linq进行列表到字典的转换
本文关键字:字典 转换 列表 Linq 使用 | 更新日期: 2023-09-27 18:10:29
有人能建议我应该使用什么Linq运算符来编写一个优雅的代码,将List转换为Dictionary of List吗?例如,我有一个人员列表(List<Person>
(,我想将其转换为列表词典(如使用人员姓氏作为关键字的Dictionary<string, List<Person>>
(。我需要它来快速查找按姓氏
从List<Person>
:获取Dictionary<string, List<Person>>
var dictionary = list
.GroupBy(p => p.LastName)
.ToDictionary(g => g.Key, g => g.ToList());
这不是您所要求的,但您可以使用Philip响应:-(
var lookup = myList.ToLookup(p => p.Surname);
这将创建一个与您想要的非常相似的ILookup<string, Person>
(您不会有Dictionary<string, List<Person>>
,但与Dictionary<string, IEnumerable<Person>>
更相似,并且ILookup
是只读的(
您还可以使用以下内容。
foreach(var item in MyList)
{
if(!myDictionary.Keys.Contains(item))
myDictionary.Add(item,item.value);
}