对C#中Dictionary中的key根据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即可。例如:

List<int> list = new List<int>() { 2, 1, 3, 4 };
list.Sort((x, y) => -x.CompareTo(y));
Console.WriteLine(list); //4,3,2,1
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/qq_33380252/article/details/118447998

智能推荐

PHP点餐系统-程序员宅基地

文章浏览阅读187次。轮播管理/城市管理/分类管理/商品管理/样式管理/订单管理/评价管理/留言管理/公告管理/修改密码。技术栈:php html css thinkphp5 js ajax md5。登录/注册/修改密码/加入购物车/修改个人信息/查看订单/添加地址。系统分为用户和管理员。_php点餐系统

部署LCM(Latent Consistency Models)实现快速出图_simianluo/lcm_dreamshaper_v7-程序员宅基地

文章浏览阅读2.3k次。LCM(Latent Consistency Models)可以通过很少的迭代次数就可以生成高清晰度的图片,目前只可以使用一个模型Dreamshaper_v7,基于SD版本Dreamshaper微调而来的。_simianluo/lcm_dreamshaper_v7

python FTP客户端程序 f =ftplib.FTP受阻,恳请指点迷津_python ftp堵塞 超时-程序员宅基地

文章浏览阅读245次。出现的Errno 111 和 2 的原因不明。_python ftp堵塞 超时

哪个照片去水印的工具好用?这6种照片去水印方法可拯救图片-程序员宅基地

文章浏览阅读761次,点赞14次,收藏12次。对于需要去除多个图片水印的朋友来说,该工具提供的批量处理服务,可以帮助大家一次性去除图片中的多个水印,大大提高了图像处理效率。该工具使用先进的算法来分析图片内容,并对水印区域进行智能填充操作,使得图像在去除水印后也能够保持较高的质量,看起来十分自然。它提供了一些基础的图像编辑工具,如裁剪、旋转、贴纸添加等,大家可以在去除水印的同时对图片进行一些简单的调整操作。这是集成在Windows操作系统中的一款图像处理工具,不仅提供了绘图功能,还支持一些基本的图像编辑和修复功能。

Android属性动画 PropertyValuesHolder_android propertyvaluesholder.offloat-程序员宅基地

文章浏览阅读836次。PropertyValuesHolderPropertyValuesHolder这个类的意义就是,它其中保存了动画过程中所需要操作的属性和对应的值。我们通过ofFloat(Object target, String propertyName, float… values)构造的动画,ofFloat()的内部实现其实就是将传进来的参数封装成 PropertyValuesHolder实例来保存动画状态。在封装成 PropertyValuesHolder实例以后,后期的各种操作也是以PropertyValues_android propertyvaluesholder.offloat

Java 你还在用list.contain做去重? 你是故意的还是不小心的?_list.contains-程序员宅基地

Java中常见的去重方法是使用List的contain方法,但这种方法效率较低。本文作者分享了一个更高效的去重方法,并对其进行了实验和评价。

随便推点

linux上安装Openssl步骤详解-程序员宅基地

文章浏览阅读1.8w次,点赞8次,收藏54次。linux上安装Openssl步骤详解 1,查看原有系统是否已安装Opensslopenssl version -a系统已经安装了openssl,我们先安装新的版本,然后将环境配置成最新的版本。2,从openssl官网下载最新的稳定版本,https://www.openssl.org/source/ 当前的稳定版是 openssl-fips-2.0.16.t_openssl

内核启动卡在Waiting for root device /dev/mmcblk0p2...-程序员宅基地

文章浏览阅读1.8k次。Waiting for root device /dev/mmcblk0p2... _waiting for root device

Java学习笔记——内部类(成员类,局部类,匿名类)-程序员宅基地

文章浏览阅读721次,点赞26次,收藏17次。private 为了保证数据的安全性System.out.println(“芯片工作”);o.show();//内部类加入了private权限修饰符之后,就不能被访问了是错误的芯片在电脑的里面,我们不希望芯片这个内部类被外界访问,所以用private修饰这时我们只能在Computer类里面创建Chip类的对象,再由这个对象来调用成员变量或者成员方法。再像之前那样用外部类名.内部类名 对象名 = 外部类对象.内部类对象;的方法来创建内部类对象就不行了。

CodeForces 1045G AI robots(CDQ分治 + 树状数组 + 单调队列)_codeforces cdq-程序员宅基地

文章浏览阅读418次。 大致题意:有很多个机器人,他们要相互交流有一些限制条件。首先是,两个人要相互能够能够看到;其次,两个人的智商的差不超过K。现在给出每个机器人的视力范围和他们的智商,现在问你总共有多少对机器人能够相互交流。首先来看下总共有多少个限制条件。由于是要求双方都能够看到,所以显然是要按照视野半径去排序的。然后要求两个人的智商差要在一定的范围内的,所以也要按照智商去排序。另外还要跟自己的位..._codeforces cdq

利用matlab仿真两星球之间的万有引力运动_星间切换时延matlab-程序员宅基地

文章浏览阅读1.4k次,点赞7次,收藏13次。利用matlab建模仿真星球之间的万有引力运动_星间切换时延matlab

Android 本地保存之外部存储/内部存储路径获取大全_getexternaldir().tostring()-程序员宅基地

文章浏览阅读2k次。//:/system String rootDir = Environment.getRootDirectory().toString(); System.out.println("Environment.getRootDirectory()=:" + rootDir); //:/data 用户数据目录 Stri..._getexternaldir().tostring()

推荐文章

热门文章

相关标签