1

可能重复:
Linq - 每组的最高值

我有以下结构的数据:

 var lookupDictionary = new Dictionary<string, Dictionary<string, double>>();

我正在尝试编写一个 Linq 查询,通过对内部字典中的双精度值进行求和并降序排列,为我提供外部字典中的前 10 个键。我对 SQL 有很好的掌握group by,但很难将其转换为 Linq。

任何可以演示此类查询的 Linq 专家?

4

2 回答 2

2

你需要一个group by吗?

var top = lookupDictionary
    .Select(dict => new { dict.Key, InnerCount = dict.Value.Values.Sum() })
    .OrderByDescending(dict => dict.InnerCount)
    .Take(10);
于 2012-06-26T15:02:01.563 回答
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);
于 2012-06-26T15:01:35.330 回答