可能重复:
Linq - 每组的最高值
我有以下结构的数据:
var lookupDictionary = new Dictionary<string, Dictionary<string, double>>();
我正在尝试编写一个 Linq 查询,通过对内部字典中的双精度值进行求和并降序排列,为我提供外部字典中的前 10 个键。我对 SQL 有很好的掌握group by
,但很难将其转换为 Linq。
任何可以演示此类查询的 Linq 专家?
可能重复:
Linq - 每组的最高值
我有以下结构的数据:
var lookupDictionary = new Dictionary<string, Dictionary<string, double>>();
我正在尝试编写一个 Linq 查询,通过对内部字典中的双精度值进行求和并降序排列,为我提供外部字典中的前 10 个键。我对 SQL 有很好的掌握group by
,但很难将其转换为 Linq。
任何可以演示此类查询的 Linq 专家?
你需要一个group by吗?
var top = lookupDictionary
.Select(dict => new { dict.Key, InnerCount = dict.Value.Values.Sum() })
.OrderByDescending(dict => dict.InnerCount)
.Take(10);
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);