2011-03-10 53 views
0

在C#中,我有一個Dictionary對象,它存儲一個整數值和一個十進制值。如何使用Dictionary對象做「Group by」?

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 

如何做到這一點?

+0

是否試着通過或最多做一組? – msarchet 2011-03-10 15:08:34

+0

最大。按第一列分組 – Shyju 2011-03-10 15:10:19

+7

「Dictionary」不允許重複鍵,因此您的描述看起來不準確。它究竟是什麼類型的對象?也許你可以告訴我們如何用一些代碼設置這個對象。 – 2011-03-10 15:10:59

回答

3
var query = yourDictionary.GroupBy(x => x.Value, 
            (k, g) => new { 
                Max = g.Max(x => x.Key), 
                Value = k 
               }); 
0
var itemCount2NumberMap = yourDictionary.GroupBy(item=>item.Value).ToDictionary(x=>x.Key, x=>x.Max(y=>y.Key));