• 技术文章 >后端开发 >C#.Net教程

    关于C#中字典Dictionary的顺序及倒序详解

    黄舟黄舟2017-05-07 10:21:33原创2625

    C# .net 3.5 以上的版本引入 Linq 后,字典Dictionary排序变得十分简单,用一句类似 sql 数据库查询语句即可搞定;不过,.net 2.0 排序要稍微麻烦一点,为便于使用,将总结 .net 3.5 和 2.0 的排序方法。

    一、创建字典Dictionary 对象

      假如 Dictionary 中保存的是一个网站页面流量,key 是网页名称,值value对应的是网页被访问的次数,由于网页的访问次要不断的统计,所以不能用 int 作为 key,只能用网页名称,创建 Dictionary 对象及添加数据代码如下:

    Dictionary<string, int> dic = new Dictionary<string, int>();
      dic.Add("index.html", 50);
      dic.Add("product.html", 13);
      dic.Add("aboutus.html", 4);
      dic.Add("online.aspx", 22);
      dic.Add("news.aspx", 18);

     二、.net 3.5 以上版本 Dictionary排序(即 linq dictionary 排序)

      1、dictionary按值value排序

     private void DictonarySort(Dictionary<string, int> dic)
      {
        var dicSort = from objDic in dic orderby objDic.Value descending select objDic;
        foreach(KeyValuePair<string, int> kvp in dicSort)
          Response.Write(kvp.Key + ":" + kvp.Value + "<br />");
      }

     排序结果:

      index.html:50
      online.aspx:22
      news.aspx:18
      product.html:13
      aboutus.html:4

      上述代码是按降序(倒序)排列,如果想按升序(顺序)排列,只需要把变量 dicSort 右边的 descending 去掉即可。

      2、C# dictionary key 排序

      如果要按 Key 排序,只需要把变量 dicSort 右边的 objDic.Value 改为 objDic.Key 即可。

    三、.net 2.0 版本 Dictionary排序

      1、dictionary按值value排序(倒序)

    private void DictionarySort(Dictionary<string, int> dic)
      {
        if (dic.Count > 0)
        {
          List<KeyValuePair<string, int>> lst = new List<KeyValuePair<string, int>>(dic);
          lst.Sort(delegate(KeyValuePair<string, int> s1, KeyValuePair<string, int> s2)
          {
            return s2.Value.CompareTo(s1.Value);
          });
          dic.Clear();
    
          foreach (KeyValuePair<string, int> kvp in lst)
            Response.Write(kvp.Key + ":" + kvp.Value + "<br />");
        }
      }

    排序结果:

      index.html:50
      online.aspx:22
      news.aspx:18
      product.html:13
      aboutus.html:4

      顺序排列:只需要把变量 return s2.Value.CompareTo(s1.Value); 改为 return s1.Value.CompareTo(s2.Value); 即可。

    2、C# dictionary key 排序(倒序、顺序)

      如果要按 Key 排序,倒序只需把 return s2.Value.CompareTo(s1.Value); 改为 return s2.Key.CompareTo(s1.Key);;顺序只需把return s2.Key.CompareTo(s1.Key); 改为 return s1.Key.CompareTo(s2.Key); 即可。

    php入门到就业线上直播课:查看学习

    以上就是关于C#中字典Dictionary的顺序及倒序详解的详细内容,更多请关注php中文网其它相关文章!

    声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn核实处理。

    前端(VUE)零基础到就业课程:点击学习

    清晰的学习路线+老师随时辅导答疑

    自己动手写 PHP MVC 框架:点击学习

    快速了解MVC架构、了解框架底层运行原理

    上一篇:Dictionary字典类在C#中的示例代码介绍 下一篇:自己动手写 PHP MVC 框架(40节精讲/巨细/新人进阶必看)

    相关文章推荐

    • ❤️‍🔥共22门课程,总价3725元,会员免费学• ❤️‍🔥接口自动化测试不想写代码?• c语言中源文件编译后生成什么文件• c语言标识符有哪些类型• C#中GDI+编程10个基本技巧二• ASP.NET使用Ajax如何返回Json对象的方法具体介绍• 应用绝对路径与相对路径
    1/1

    PHP中文网