2011-02-06 116 views
6

我需要排序字符串數組,它必須按ascii排序。c#區分大小寫的ASCII排序?

如果使用Array.Sort(myArray),它將不起作用。

例如: myArray的是( 「aAzxxxx」, 「aabxxxx」) 如果使用的Array.Sort(myArray的) 結果將是

  1. aabxxxx
  2. aAzxxxx

但如果ascii排序,因爲A < a,(大寫A是65,a是97,所以A < a) 結果將是

  1. aAzxxxx
  2. aabxxxx

這是結果,我需要。關於如何對字符串數組進行ASCII排序的任何想法?

THX

回答

13

如果我理解正確的,你要執行序號比較。

Array.Sort(myArray, StringComparer.Ordinal); 
1

使用Sort過載,需要一個合適的IComparer<T>

Array.Sort(myArray, StringComparer.InvariantCulture); 

這類是區分大小寫

如果由ASCII值尋找一個排序,使用StringComparer.Ordinal

Array.Sort(myArray, StringComparer.Ordinal); 
+1

使用StringComparer.InvariantCulture將導致與op已經獲得相同的排序。爲了得到結果,操作期望StringComparer.Ordinal是必需的。 – 2011-02-06 15:03:01

3

如果您想通過該炭代碼詞法排序,你可以提供StringComparer.Ordinal作爲一個比較器對Array.Sort

Array.Sort(myArray,StringComparer.Ordinal); 

由序屬性返回的StringComparer執行簡單的字節比較是獨立的語言。比較以編程方式生成的字符串或比較區分大小寫的資源(如密碼)時,這是最合適的。

StringComparer class包含幾個不同的比較器,您可以從中選擇哪個比較器,具體取決於您想要的文化或區分大小寫。

相關問題