2010-03-01 19 views
4

如何按值排序Dictionary(.NET 2.0)?或者有没有其他办法呢?SortDictionary,但按值排序

我想排序标签就像在博主。但我想按照数字来分类标签,而不是按名称排序?


我不必再问.. 为什么这个代码在ASP.NET中使用时不会工作

result.Sort((first, second) => second.Value.CompareTo(first.Value)); 

它抛出5个错误,同时建立

+0

我想确定'KeyedCollection'是否会做你想做的。它是IList和IDictionary之间的抽象混合体。请参阅MSDN:http://msdn.microsoft.com/en-us/library/ms132438%28VS.80%29.aspx – IAbstract 2010-03-01 03:23:03

回答

4

可以使用lambda函数和一个名单做类似:

var myList = new Dictionary<string, int>(); 
var result = new List<KeyValuePair<string, int>>(myList); 
result.Sort((first, second) => second.Value.CompareTo(first.Value)); 
+0

+1此方法还允许您通过使用替代lambda函数来提供不同的排序选项。 – 2010-03-01 03:47:21