2013-03-05 99 views
0

我想按值排序字典。看起來它通常是在.Net中不存在的Mono API中完成的。按值排序字典

是否有任何特定的API調用,或者我應該自己做這個?

感謝

+4

什麼是「它通常會在.net做的方式」?你能舉個例子嗎? – 2013-03-05 12:00:58

+0

看來你還沒有搜索網絡。 – Guy 2013-03-05 12:02:42

+0

如果它是'System.Collections.Generic.Dictionary <,>',那麼字典本身沒有特定的順序,因此不能排序。如果你想要一個具有字典的鍵/值對的「IEnumerable <>」(序列),以便對IEnumerable <>進行排序, LINQ方法'OrderBy'。 – 2013-03-05 12:03:37

回答

0

你可以使用LINQ:

var dict = new Dictionary<string, int>(); 
var sorted = dict.OrderBy(kvp => kvp.Value).ToList(); 
1

至於評論,Dictionary類沒有順序。如果您需要訂購的字典,則有SortedDictionary類。

但是SortedDictionary是按鍵排序的。通過它的值保留一個訂購字典似乎並不是一個常見的任務。

無論如何,如果你想訪問排序,你可以做的值:

dict.Values.OrderBy(v => v).ToList(); //Sorted list of the values of the dictionary dict 

dict.OrderBy(kvp => kvp.Value).ToList(); //Sorted list (by value) of the key value pairs of the dictionary dict