如果您要建立應用程式來依文化特性向用戶顯示結果,區分文化特性的字元串作業會比較有利。 根據預設,對文化敏感的方法會從當前線程的 CurrentCulture 屬性中取得所需的文化資訊。
有時候,文化敏感的字串操作不是期望的行為。 當結果應該與文化特性無關時,使用區分文化特性的作業可能會導致應用程式程式代碼在具有自定義案例對應和排序規則的文化特性上失敗。 如需範例,請參閱
字串作業是否應該區分文化特性或不區分文化特性,取決於應用程式使用結果的方式。 向使用者顯示結果的字串操作通常應該是文化敏感的。 例如,如果應用程式在清單框中顯示本地化字串的已排序列表,應用程式應該執行區分文化特性的排序。
使用在內部的字串作業結果通常應不考慮文化差異。 一般而言,如果應用程式使用未向用戶顯示的檔名、持續性格式或符號資訊,字串作業的結果不應因文化特性而異。 例如,如果應用程式比較字串來判斷它是否為可辨識的 XML 標籤,則比較不應區分文化特性。 此外,如果安全性決策是基於字串比較或大小寫變更作業的結果,則作業應該是不受文化特性影響的,以確保結果不會受到CurrentCulture的值影響。
根據 預設 ,大部分執行區分文化特性的字串作業的 .NET 方法也會提供多載,讓您保證不區分文化特性的結果。 採用 CultureInfo 自變數的這些多載可讓您在案例對應和排序規則中排除文化變化。 針對不區分文化特性的字串作業,請將文化特性指定為 CultureInfo.InvariantCulture。
本節中
本節中的文章示範如何使用預設具文化區分特性的 .NET 方法來執行不具文化區分特性的字串操作。
執行不區分文化特性的字串比較
描述如何使用 String.Compare 和 String.CompareTo 方法來執行不區分文化特性的字串比較。
執行不區分文化特性的案例變更
描述如何使用 String.ToUpper、 String.ToLower、 Char.ToUpper和 Char.ToLower 方法來執行不區分文化特性的案例變更。
在集合中執行不區分文化特性的字串作業
描述如何使用 CaseInsensitiveComparer、 CaseInsensitiveHashCodeProvider 類別、 SortedList、 ArrayList.Sort 和 CollectionsUtil.CreateCaseInsensitiveHashtable 在集合中執行不區分文化特性的作業。
在陣列中執行不區分文化特性的字串作業
描述如何使用 Array.Sort 和 Array.BinarySearch 方法來在陣列中執行不考慮文化差異的操作。