執行不區分文化特性 (Culture) 的字串作業

如果您建立的應用程式會根據個別文化特性對使用者顯示結果,區分文化特性的字串作業將有所助益。 根據預設,區分文化特性的方法會從目前執行緒的 CurrentCulture 屬性取得要使用的文化特性。

有時候,區分文化特性的字串作業並不是所要的行為。 若結果應該與文化特性無關,但使用了區分文化特性的作業,可能會造成應用程式程式碼在具有自訂大小寫對應和排序規則的文化特性上失敗。 如需範例,請參閱使用字串的最佳做法一文中的使用目前文化特性的字串比較一節。

字串作業是否應該區分文化特性取決於您的應用程式如何使用結果。 對使用者顯示結果的字串作業,通常都是區分文化特性的。 例如,如果應用程式要在清單方塊中顯示排序過的當地語系化字串清單,應用程式就應該執行區分文化特性的排序。

用於內部的字串作業的結果,通常都是不區分文化特性的。 一般而言,如果應用程式使用沒有對使用者顯示的檔名、保存性格式或符號資訊,字串作業的結果便不應該因文化特性而有所不同。 例如,如果應用程式進行字串的比較,以判斷該字串是否為可以辨認的 XML 標記,則這項比較就不應是區分文化特性的。 此外,如果安全性決策必須依據字串比較的結果進行,則作業應該不區分文化特性,以確保結果不受 CurrentCulture 的值影響。

大多數根據預設會執行區分文化特性之字串作業的 .NET 方法也會提供多載,以保證您可以得到不區分文化特性的結果。 這些採用 CultureInfo 引數的多載可讓您消除大小寫對應和排序規則中的文化特性變化。 針對不區分文化特性的字串作業,請將文化特性指定為 CultureInfo.InvariantCulture

本節內容

本節的文章會示範如何用預設為區分文化特性的 .NET 方法,執行不區分文化特性的字串作業。

執行不區分文化特性的字串比較
描述如何使用 String.CompareString.CompareTo 方法執行不區分文化特性的字串比較。

執行不區分文化特性的大小寫變更
描述如何使用 String.ToUpperString.ToLowerChar.ToUpperChar.ToLower 方法執行不區分文化特性的大小寫變更。

在集合中執行不區分文化特性的字串作業
描述如何使用 CaseInsensitiveComparerCaseInsensitiveHashCodeProvider 類別、SortedListArrayList.SortCollectionsUtil.CreateCaseInsensitiveHashtable,在集合中執行不區分文化特性的作業。

在陣列中執行不區分文化特性的字串作業
描述如何使用 Array.SortArray.BinarySearch 方法,在陣列中執行不區分文化特性的作業。

另請參閱