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

发布时间 2023-06-05 11:34:58作者: runliuv

 

.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默认行为也一样。