分组和选择在LINQ
本文关键字:LINQ 选择 | 更新日期: 2023-09-27 18:19:25
我希望能够按特定字段(id)对项目列表进行分组,然后提取id,代码对的字典。然后,我需要访问id和代码对来执行一些逻辑操作。我如何使用linq做到这一点?
。
Id Code Send
1 500 1
1 501 0
2 600 1
2 601 0
2 602 0
3 700 0
3 701 1
3 702 0
3 703 1
预期结果-
1 500,501
2 600,601,602
3 700, 701, 702, 703
这就是我到目前为止所做的-努力找出如何将代码放入字典:
from i in items
group i by i.Id into g
select new Dictionary<Guid, List<long>>
{
g.Key, g.ToList()
}
你可以这样做:
var res = items
.GroupBy(i => i.Id)
.ToDictionary(
g => g.Key
, g => g.Select(v => v.Code).ToList()
);
您的解决方案很接近-您需要添加Code
的选择来完成它。
最后一部分
g.ToList()
必须是
g.Select(c => c.Code).ToList()
在我看来,LINQ已经有一个这样做的操作符了。
ILookup<Guid, long> res = items.ToLookup(i => i.Id, i => i.Code);