我的数据库中的数据存储为
ID DateID国家NoOfPeople
2 20130301印度尼西亚2
3 20130301马来西亚128
4 20130301英国2
6 20130302澳大利亚1
24 20130303澳大利亚2
25 20130303不丹11
26 20130303加拿大1
27 20130303 Fiji 1
28 20130303芬兰1
52 20130304澳大利亚2
53 20130304不丹10
54 20130304加拿大1
55 20130304 Fiji 1
我希望将此数据转换为字典,其中DateID是键,值是国家/地区属性列表和noOfPeople
即。 Dictionary<int, List<Country>>
我使用LINQ将数据返回到我的应用程序,然后遍历结果,创建每个唯一日期ID的国家/地区列表。这有效,但我正在寻找一种更优雅,更有效的解决方案。
我的最终目标是以
格式输出JSONPeopleByCountry":{
"20130301":
[
{"country":"Indonesia"," noOfPeople ":2},
{"country":"Malaysia"," noOfPeople ":128},
{"country":"United Kingdom"," noOfPeople ":2}
],
"20130302":
[
{"country":"Indonesia","noOfPeople":1},
{"country":"Australia"," noOfPeople ":1}
]
}
我正在使用NewtonSoft。
希望这是有道理的。
提前致谢。
答案 0 :(得分:0)
如果您有一个IEnumerable<Row>
,比如rows
,对于某些类Row
,其中包含您数据的每一行的属性,那么您可以使用Linq查询创建所需的结构:
rows.ToLookup(r => r.DateID).ToDictionary(g => g.Key, g => g.ToList());
然后使用任何标准的JSON序列化器都可以获得所需的格式。详细了解ILookup<TKey, TElement>
here。