gpt4 book ai didi

c# - LINQ嵌套字典总结

转载 作者:太空宇宙 更新时间:2023-11-03 13:04:18 25 4
gpt4 key购买 nike

字典 >

2015/6/1 10:30  table1  300,
table2 600

2015/6/1 11:25 table1 200

2015/6/2 10:25 table1 200,
table2 700

如何得到这些汇总结果

字典 >

2015/6/1   table1  500,
table2 600

2015/6/2 table1 200,
table2 700

最佳答案

您需要使用 SelectMany 来展平您的内部字典之后可以申请GroupBy首先在 DateTime 上(字典中的 Key),然后在结果中您需要再次按 tables 分组。最后,您可以将输出投影为 Dictionary。这是完整的代码:-

Dictionary<DateTime,Dictionary<string,double>> result = 
data.SelectMany(x => x.Value, (key, obj) => new { key, obj })
.GroupBy(x => new { Date = x.key.Key.Date })
.Select(x => new
{
Date = x.Key.Date,
Output = x.GroupBy(z => z.obj.Key)
.Select(t => new { Table = t.Key, Sum = t.Sum(m => m.obj.Value) })
.ToDictionary(d => d.Table, d => d.Sum)
}).ToDictionary(x => x.Date, x=> x.Output);

Working Fiddle.

关于c# - LINQ嵌套字典总结,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31281457/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com