.jpg)
我经常需要按值对字典(由键和值组成)进行排序。例如,我有一个单词和相应频率的哈希值,我想按频率排序。
有一个对于单个值(比如频率)是好的,我想映射回这个词。SortedList
按键而不是值排序字典排序。有些人求助于定制课程,但有没有更清洁的方法?

网友回答:
用:
using System.Linq.Enumerable;
...
List<KeyValuePair<string, string>> myList = aDictionary.ToList();
myList.Sort(
delegate(KeyValuePair<string, string> pair1,
KeyValuePair<string, string> pair2)
{
return pair1.Value.CompareTo(pair2.Value);
}
);
由于您的目标是 .NET 2.0 或更高版本,因此您可以将其简化为 lambda 语法 — 它是等效的,但更短。如果面向 .NET 2.0,则只能在使用 Visual Studio 2008(或更高版本)中的编译器时使用此语法。
var myList = aDictionary.ToList();
myList.Sort((pair1,pair2) => pair1.Value.CompareTo(pair2.Value));

网友回答:
使用 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;
这也将允许极大的灵活性,因为您可以选择前 10 名、20 名 10% 等。或者,如果您将词频索引用于 ,您也可以包含子句。type-aheadStartsWith

网友回答:
您可以使用:
var ordered = dict.OrderBy(x => x.Value).ToDictionary(x => x.Key, x => x.Value);
模板简介:该模板名称为【在c#中如何按值对字典进行排序?】,大小是暂无信息,文档格式为.编程语言,推荐使用Sublime/Dreamweaver/HBuilder打开,作品中的图片,文字等数据均可修改,图片请在作品中选中图片替换即可,文字修改直接点击文字修改即可,您也可以新增或修改作品中的内容,该模板来自用户分享,如有侵权行为请联系网站客服处理。欢迎来懒人模板【C#】栏目查找您需要的精美模板。