当前位置:   article > 正文

对C#中Dictionary中的key根据value值进行排序_c# dictionary 按value排序

c# dictionary 按value排序

Dictionary<char, int> dic = new Dictionary<char, int>();

dic.add('a',2);

dic.add('b',3);

dic.add('c',1);

Resolution:

        List<char> list = new List<char>(dic.Keys);

     1、 list.Sort((a, b) => dic[b] - dic[a]);
      2、list.Sort((a, b) => -dic[a].CompareTo(dic[b]));

其实C#中的List的Sort函数中的比较函数CompareTo有三种结果 1, -1 ,0分别代表大,小,相等。默认List的排序是升序排序

在比较函数CompareTo()中,如果 x>y return 1;则是按照升序排列。如果x>y return -1;则是按照降序排列。这就是1和-1大小的含义。其实你非要这么写 x<y return 1;则也表示降序排列。不过大家一般习惯x>y return 1;升序,如果想要降序只需return -1;即可

Tips:系统List默认的排序是升序,如果你想要降序,可以直接在比较函数前面加个负号,把返回结果由1变成-1即可。例如:

  1. List<int> list = new List<int>() { 2, 1, 3, 4 };
  2. list.Sort((x, y) => -x.CompareTo(y));
  3. Console.WriteLine(list); //4,3,2,1
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/你好赵伟/article/detail/84513
推荐阅读
  

闽ICP备14008679号