我的字典类型为<int, list<int>>
。我正在尝试计算为该特定键重复的值实例数。
我试过
LINQquery = dict.SelectMany(keyvalues => keyvalues.Value.GroupBy(values => values).Select(values => new {key = keyvalues.Key, value = values.Key, count = values.Count(),votescasted = keyvalues.Value.Count}));
resultList = LINQquery.ToList();
通过这个LINQ我正在为我的字典中的每个唯一值创建一个新的列表条目。我最终在列表中有多个键条目。如何修改我的查询,以便我有一个结果列表,其中包含key,countvalue1,countofvalue2 ..,countofvalueN?
我的输入是dict {500,{25,26,25,25}} 用我的LINQ我得到一个列表 键= 500,值= 25,计数= 3 键= 500,值= 26,计数= 1
如何修改我的查询以便我的输出列表可以 键= 500,countof25 = 3,countof26 = 1。
答案 0 :(得分:0)
我相信这会做你想要的:
var x = dict
.Select(d => new { Key = d.Key,
Counts = d.Value.GroupBy(v => v)
.Select(g =>
new { Value = g.Key,
Count = g.Count() })});
然后我们可以添加:
x.Select(i => $"Key = {i.Key}, " +
String.Join(", ", i.Counts.Select(c => $"countof{c.Value}={c.Count}" ))).Dump();
我们得到:
Key = 500, countof25=3, countof26=1