依文化特性排序
更新:2007 年 11 月
依用來比較的排序規則為字串排序,因此是依成對字串排列順序。當您的應用程式執行比較作業時,可以用一個或多個 CompareOptions 列舉值明確指定排序規則,也可以用 CultureInfo 物件隱含指定排序規則。
.NET Framework 支援字、字串和序數排序規則。字排序會執行區分文化特性的字串比較,可能會對其中某些非字母的 Unicode 字元指定不同的權重。例如,短破折號 ("-") 可能就會指定很小的權重,以便在排序清單中讓 "coop" 和 "co-op" 彼此相鄰列出。字串排序類似於字排序,只是在所有字母 Unicode 字元之前,沒有特殊大小寫和任何非字母符號。序數排序會根據字串中各個 Char 物件的數值為字串進行排序。如需有關字、字串和序數排序規則的詳細資訊,請參閱 CompareOptions。
.NET Framework 是以 String 類別表示字串,而字串的各個 Unicode 字元則是以 Char 結構表示。文化特性是以 CultureInfo 類別表示,而與比較有關的文化特性資訊則是以 CompareInfo 類別表示。String 和 CompareInfo 類別是比較方法的主要來源。除非另有指定,比較作業都會使用與目前執行緒相關聯的文化特性。
以文化特性做比較的時機和方式
請利用下列方針,決定您的應用程式是否應執行區分文化特性的比較:
如果您的應用程式需要執行依特定文化特性而定的排序作業,請使用指定 CultureInfo 物件或 CompareOptions 列舉參數的比較方法。
如果應用程式需要執行不是專屬某特定文化特性的排序作業,請指定不因文化特性而異,或是使用序數排序。例如,應用程式可以使用序數比較來排序檔案名稱、Mutexe 和具名管道 (Named Pipe)。如需不因文化特性而異的詳細資訊,請參閱使用 InvariantCulture 屬性。如需序數排序的詳細資訊,請參閱正規化和排序。
如果您的應用程式會根據排序字串做成安全性決策,請使用序數排序。
![]() |
---|
採用在做成安全性決策時所使用之比較作業中的不因文化特性而異,這個前面提到的建議此時已被取代。應用程式應改用序數比較。 |