我需要对一个字符串Array进行排序,它必须按ascii排序。
如果使用Array.Sort(myArray),它将无效。
例如: myArray是(“aAzxxxx”,“aabxxxx”) 如果使用Array.Sort(myArray) 结果将是
但如果ascii排序,因为A< a,(资本A是65,a是97,所以A< a) 结果将是
这是我需要的结果。关于如何对字符串数组进行ASCII排序的任何想法?
THX
答案 0 :(得分:15)
如果我理解正确,你想进行顺序比较。
Array.Sort(myArray, StringComparer.Ordinal);
答案 1 :(得分:3)
如果你想通过字符代码进行词法排序,你可以提供StringComparer.Ordinal
作为Array.Sort
的比较器。
Array.Sort(myArray,StringComparer.Ordinal);
Ordinal属性返回的StringComparer执行一个独立于语言的简单字节比较。在比较以编程方式生成的字符串或比较区分大小写的资源(如密码)时,这是最合适的。
StringComparer
class包含几种不同的比较器,您可以根据所需的文化或区分大小写来选择它们。
答案 2 :(得分:1)
使用Sort
的重载,需要合适的IComparer<T>
:
Array.Sort(myArray, StringComparer.InvariantCulture);
此类区分大小写。
如果您要按 ASCII值进行排序,请使用StringComparer.Ordinal
:
Array.Sort(myArray, StringComparer.Ordinal);