我有以下结构的数据:
var lookupDictionary = new Dictionary<string, Dictionary<string, double>>();
我尝试编写一个Linq查询,通过总结和排序降低内部字典中的双精度来从外部字典中获取前10个键。我对SQL中的group by
有很好的把握,但很难将其转换为Linq。
任何可以证明此类查询的Linq专家?
答案 0 :(得分:2)
你需要一个小组吗?
var top = lookupDictionary
.Select(dict => new { dict.Key, InnerCount = dict.Value.Values.Sum() })
.OrderByDescending(dict => dict.InnerCount)
.Take(10);
答案 1 :(得分:1)
Dictionary<string, Dictionary<string, double>> lookupDictionary = new Dictionary<string, Dictionary<string, double>>();
lookupDictionary.Select(outerKeyPair => new
{
Key = outerKeyPair.Key,
Sum = outerKeyPair.Value.Values.Sum()
})
.OrderByDescending(pair => pair.Sum)
.Take(10);