首页 > 编程语言 >C# .NET Dictionary 将集合key以ascii码从小到大排序

C# .NET Dictionary 将集合key以ascii码从小到大排序

时间:2023-06-05 11:46:07浏览次数:43  
标签:string Dictionary C# key NET 排序 IDictionary arrKeys

 

.NET 不加参数,默认不是按ASC II 排序 。
JAVA 默认是按ASC II 排序 。

 

Array.Sort(arrKeys, string.CompareOrdinal); 按ASC II 排序。区分大小写。
Array.Sort(arrKeys); 排序但不区分大小写。

 

方法1:

public static IDictionary<string, string> AsciiDictionary(IDictionary<string, string> sArray)
        {
            IDictionary<string, string> asciiDic = new Dictionary<string, string>();
            string[] arrKeys = sArray.Keys.ToArray();
            Array.Sort(arrKeys, string.CompareOrdinal);
            foreach (var key in arrKeys)
            {
                string value = sArray[key];
                asciiDic.Add(key, value);
            }
            return asciiDic;
        }

 

var dic2 = HashUtil.AsciiDictionary(dic1);

 

方法2:

SortedDictionary<string, string> paras = new SortedDictionary<string, string>(StringComparer.Ordinal);

 

SortedDictionary默认行为也一样。

标签:string,Dictionary,C#,key,NET,排序,IDictionary,arrKeys
From: https://www.cnblogs.com/runliuv/p/17457387.html

相关文章

  • C++之浅拷贝和深拷贝
    浅拷贝:简单的复制拷贝操作P1的生命周期结束后,判断m_PtrAge是否为空,很明显m_PtrAge的值是0x0100,不为空,释放m_PtrAge指向的内存;P2的生命周期结束后,同样判断m_PtrAge是否为空,很明显m_PtrAge的值也是0x0100,也不为空,再次释放m_PtrAge指向的内存空间;两次释放都指向同一块内存空间,造成......
  • 解决VSCode的Vetur插件has no default export问题
    由于有vue2和vue3的项目,VSCode同时使用了vetur和volar插件,但是在vue3引入其他模块时,报了错误Module'"xxxx.vue"'hasnodefaultexport.的错误,实际运行时没问题的,但是看得糟心。解决办法,只要在设置里,设置"vetur.validation.script":false......
  • DC电源模块在工业自动化的应用
    BOSHIDADC电源模块在工业自动化的应用随着自动化技术的不断发展,DC电源模块已成为工业控制系统中不可或缺的一个组成部分。在许多自动化系统中,如机器人、控制器、PLC等,都需要使用到直流电源模块来提供稳定可靠的电源,以确保系统的正常运行。本文将从以下几个方面探讨DC电源模块在工......
  • 如易云揭秘1-框架(cache)
    Hibernate老鸟的话,对于Hibernatecache的精妙实现应该都是非常了解,即便不了解其实现原理,也知道Hibernatecache非常的易用,集成EhCache,对于系统性能也有很好的提升。那我们来看看如易云的框架,如易云的框架基于Mybatis,Mybatis新版本中也集成了cache,并且也有开源......
  • EXCEL判断一列数字是否连续
    =IF(G2=G1+1,"连续","不连续")......
  • const { t } = useI18n();不能在setup外执行
    传递函数constchartOptions=(t:Function,color:string="warning",height:string="auto"):ApexOptions=>{return{//Restofyourchartoptionscategories:[t("Totalnumber"),t("normal"),&......
  • Docker Registry深度历险
    目录前言环境问题缘起安装本地Registryminikube访问共享image前言上篇我们对Docker整体有了一定了解,知道了其中一个核心概念是Registry,下来就进行更深入的学习环境环境:macminiM1芯片;dockerdesktop(自带k8s)和minikube问题缘起之前确实对docker和k8s没有深入和体系化的学习,就是跑跑......
  • mac M2 使用sed
    安装distributionBase=GRADLE_USER_HOME替换apline源set-eux&&sed-i's/dl-cdn.alpinelinux.org/mirrors.ustc.edu.cn/g'/etc/apk/repositories替换urlsed-es"https://mirrors.cloud.tencent.com/gradle/gradle-6.8.1-bin.zip"/"f......
  • vmware安装centos开发环境
    1准备资料系统:CentOS-7-x86_64-Everything-1804.iso 下载地址:http://ftp.riken.jp/Linux/centos/7/isos/x86_64/(CentOS-7-x86版本说明)vmware :VMware-Workstation-12.5.0-4352439;下载链接:https://pan.baidu.com/s/1zG2E6b9FhtYnSYf9FwfHIw密码:87gv开始可能会碰到问题说明下:这很......
  • ORACLE 入门系列(3)
     pl/sql提供了可编辑数据的功能,需要在select语句后加个forupdate,执行后点击锁图标就可以开始编辑数据了。数据库字符串操作,oracle和mysql独有一个相同的字符串函数INSTR,如图。这个函数还是很有作用的。......