1

重複の可能性:
Linq-各グループの最高値

私は次の構造のデータを持っています:

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

内側のディクショナリのdoubleを合計して降順で並べることにより、外側のディクショナリの上位10個のキーを取得するLinqクエリを作成しようとしています。私はSQLをよく理解しgroup byていますが、それをLinqに変換するのに苦労しています。

このタイプのクエリを実証できるLinqエキスパートはいますか?

4

2 に答える 2

2

グループ化が必要ですか?

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 に答える