c# - 你如何按值对字典进行排序?

标签 c# .net sorting dictionary

我经常需要按值对字典(由键和值组成)进行排序。例如,我有一个单词和相应频率的散列,我想按频率对其进行排序。

SortedList 适用于单个值(比如频率),我想将其映射回单词。

SortedDictionary按键排序,而不是按值排序。有些求助于 custom class , 但有更清洁的方法吗?

最佳答案

使用 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;

这也将提供很大的灵 active ,因为您可以选择前 10 个、20 个 10% 等。或者如果您使用词频索引进行 type-ahead,您还可以包括StartsWith 子句也是如此。

关于c# - 你如何按值对字典进行排序?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/289/

相关文章:

c# - 几个函数的通用替换

ios - 排序 CKRecord 返回 "Expected Types"

C 中整数的计数排序列表

python - 根据列表对字典的值进行排序

c# - `AsyncCallback` 和 `@object` 关于 .Net 中的委托(delegate)的目的是什么

.net - 在未安装 Visual Studio 的计算机上使用 FUSLOGVW.EXE

c# - 如何从属性网格中删除描述区域?

c# - 模拟类和接口(interface)之间有什么区别?

c# - 存储可以循环编辑的列表?

c# - string.Join 抛出异常