如何使用Dictionary对象执行“分组依据”?

时间:2011-03-10 15:06:46

标签: c# dictionary group-by linq-to-objects

在C#中,我有一个Dictionary对象,它存储一个整数值和一个十进制值。

Dictionary<decimal,int> objDict = new Dictionary<decimal,int>();

,值为

   12  1
   23  1
   14  1
   6   2
   9   2
   16  3
   -4  3

我想使用LINQ对此进行分组,以便获得最大值。预期的输出是

   23  1
    9  2
   16  3

怎么做?

2 个答案:

答案 0 :(得分:3)

var query = yourDictionary.GroupBy(x => x.Value,
                                   (k, g) => new {
                                                     Max = g.Max(x => x.Key),
                                                     Value = k
                                                 });

答案 1 :(得分:0)

var itemCount2NumberMap = yourDictionary.GroupBy(item=>item.Value).ToDictionary(x=>x.Key, x=>x.Max(y=>y.Key));