我在使用 C# 编程时遇到问题,特别是我有一个从 linq 查询生成的列表。该列表的示例如下
ID = 1, CODE = 2 ID = 1, CODE = 3 ID = 1 CODE = 4 ....
我想用这个值填充一个字典,让我的字典的键等于我的列表的 id 和像我的列表的代码这样的值
我想要的例子是
myDict = 1 : {2,3,4}
有可能吗?
提前谢谢您!
您可以使用
GroupBy
:
Dictionary<int, List<int>> myDict = list
.GroupBy(x => x.ID)
.ToDictionary(g => g.Key, g => g.Select(x => x.CODE).ToList());
ILookup
正是用于此目的,即将一个键映射到多个项目。创建它的唯一方法是通过扩展方法ToLookup()
。
假设
ID
和 CODE
都是 int
:
var lookup = yourList.ToLookup(x => x.ID, x => x.CODE);
var itemsWithId1 = lookup[1]; // contains 2, 3, 4