LINQ高效字典值排序
程序开发中,经常需要根据字典的值进行排序。例如,一个字典存储单词及其出现频率,需要按频率降序排列。
虽然SortedList
可以对单个值(如频率)排序,但它无法直接映射回原始键。而SortedDictionary
是根据键排序的,自定义类实现起来比较繁琐。
LINQ提供了一种优雅的解决方案:
Dictionary<string, int> myDict = new Dictionary<string, int>(); myDict.Add("one", 1); myDict.Add("four", 4); myDict.Add("two", 2); myDict.Add("three", 3); var sortedDict = from entry in myDict orderby entry.Value ascending select entry;
这段代码创建一个新的字典sortedDict
,其键值对按值的升序排列。它允许根据不同的条件进行排序,或选择排序字典的特定部分。例如,要查找前10个最频繁的单词,可以使用:
var top10 = sortedDict.Take(10);
以上是如何使用LINQ有效地按值对字典进行分类?的详细内容。更多信息请关注PHP中文网其他相关文章!