c#区分大小写的ASCII排序?

时间:2011-02-06 14:54:55

标签: c# sorting ascii

我需要对一个字符串Array进行排序,它必须按ascii排序。

如果使用Array.Sort(myArray),它将无效。

例如: myArray是(“aAzxxxx”,“aabxxxx”) 如果使用Array.Sort(myArray) 结果将是

  1. aabxxxx
  2. aAzxxxx
  3. 但如果ascii排序,因为A< a,(资本A是65,a是97,所以A< a) 结果将是

    1. aAzxxxx
    2. aabxxxx
    3. 这是我需要的结果。关于如何对字符串数组进行ASCII排序的任何想法?

      THX

3 个答案:

答案 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);