发布日期:2018-03-26
如何按值对字典排序?+ 查看更多
如何按值对字典排序?
+ 查看更多
发布日期:2018-02-23 15:57
分类:C#
浏览次数:152
我经常必须按值对由键和值组成的字典进行排序。例如,我有一堆词以及每个词出现的频率,我想根据频率来排序。
有一个SortedList方法对于单个值(例如频率)是有帮助的,我想把它应用在单词中。
SortedDictionary根据键排序,而不是值。一些人采取自定义类方法,还有更方便的方法吗?
有一个SortedList方法对于单个值(例如频率)是有帮助的,我想把它应用在单词中。
SortedDictionary根据键排序,而不是值。一些人采取自定义类方法,还有更方便的方法吗?
回答:
using System.Linq.Enumerable; ... List> myList = aDictionary.ToList(); myList.Sort( delegate(KeyValuePair pair1, KeyValuePair pair2) { return pair1.Value.CompareTo(pair2.Value); } );
既然你使用的是.net 2.0或更高的版本,你可以把这个简化成一个lambda语法——作用差不多,但更简洁。
var myList = aDictionary.ToList(); myList.Sort((pair1,pair2) => pair1.Value.CompareTo(pair2.Value));