Sort dictionary by value 
我想按价值订购一本词典。它通常在.NET中执行的方式似乎在MonoAPI中不存在。
是否有任何特定的API调用,或者我应该自己执行此操作?
谢谢
		
		
- 什么是"通常在.NET中的方式"?你能举个例子吗?
- 你好像还没上网。
- 如果是System.Collections.Generic.Dictionary<,>,那么字典本身就没有特定的顺序,因此无法排序。如果要使用字典中的键/值对对对对EDOCX1(sequence),以便对IEnumerable<>进行排序,请使用例如linq方法OrderBy。
- @o.r.mapper-stackoverflow.com/questions/289/&hellip;@guy i做了,Mono中的任何功能都没有出现。
- @史提夫:那单核细胞增多症怎么办?接受的问题答案中提供的代码使用mcs/gmcs和mono分别编译和运行,没有任何编译器/运行时错误。(在Win 7 x64上使用Mono 2.10.9进行检查)
- 人力资源管理…我们的单声道电视一定过时了。它为我抛出编译错误。不确定我们使用的Mono是哪个版本,只是它在Linux上(我认为不重要)
- @史蒂夫:错误信息是什么?(请务必在您的回复前写上@和我的用户名,否则我将不会收到有关您的消息的通知,只有偶然才会找到它们。)
- @史提夫:另外,你也可以用mono --version来确定单声道安装的版本。
 
	 
正如注释所示,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:
| 12
 
 | var dict = new  Dictionary<string , int>();
var  sorted =  dict.OrderBy( kvp =>  kvp.Value).ToList(); |