关于C#:按值对字典排序

Sort dictionary by value

本问题已经有最佳答案,请猛点这里访问。

我想按价值订购一本词典。它通常在.NET中执行的方式似乎在MonoAPI中不存在。

是否有任何特定的API调用,或者我应该自己执行此操作?

谢谢


正如注释所示,Dictionary类没有排序。如果您想要一个有序的字典,那么就有sortedDictionary类。

但SortedDictionary是按其键排序的。按字典的值保存排序字典似乎不是一项常见的任务。

无论如何,如果要访问排序后的值,可以执行以下操作:

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

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

您可以使用LINQ:

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