首页 > C# > 在c#中如何按值对字典进行排序?

在c#中如何按值对字典进行排序?

上一篇 下一篇

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

有一个对于单个值(比如频率)是好的,我想映射回这个词。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#】栏目查找您需要的精美模板。

相关搜索
  • 下载密码 lanrenmb
  • 下载次数 317次
  • 使用软件 Sublime/Dreamweaver/HBuilder
  • 文件格式 编程语言
  • 文件大小 暂无信息
  • 上传时间 02-25
  • 作者 网友投稿
  • 肖像权 人物画像及字体仅供参考
栏目分类 更多 >
热门推荐 更多 >
自适应 微信模板 微信公众平台 单页式简历模板 企业网站 微信素材 响应式 微信文章 html5 微信图片
您可能会喜欢的其他模板