我希望能够按特定字段(id)对项目列表进行分组,然后提取id,代码对的字典。然后我需要访问id和代码对来做一些逻辑。我怎么能用linq做到这一点?
e.g。
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()
}
答案 0 :(得分:0)
你可以这样做:
var res = items
.GroupBy(i => i.Id)
.ToDictionary(
g => g.Key
, g => g.Select(v => v.Code).ToList()
);
您的解决方案已经关闭 - 您需要添加一些Code
来完成它。
答案 1 :(得分:0)
最后一部分
g.ToList()
需要
g.Select(c => c.Code).ToList()
答案 2 :(得分:0)
在我看来LINQ已经有一个运算符可以做到这一点。
ILookup<Guid, long> res = items.ToLookup(i => i.Id, i => i.Code);