CompareInfo 類別
本文提供此 API 參考文件的補充備註。
比較和排序數據的慣例會因文化特性而異。 例如,排序順序可能以注音或字元的視覺表示為基礎。 在東亞語言中,字元是由語意的筆劃和激進的排序。 排序也取決於字母順序使用的順序語言和文化特性。 例如,丹麥文的 "Æ" 字元在字母順序中排列在 "Z" 之後。 此外,比較可能區分大小寫或區分大小寫,大小寫規則也可能因文化特性而異。 類別 CompareInfo 負責維護此區分文化特性的字串比較數據,以及執行區分文化特性的字串作業。
一般而言,您不需要直接具現化 CompareInfo 對象,因為所有非序數位串比較作業都會隱含地使用一個物件,包括呼叫 String.Compare 方法。 不過,如果您想要擷取 CompareInfo 物件,您可以透過下列其中一種方式來執行:
擷取特定文化特性的 CultureInfo.CompareInfo 屬性值。
藉由呼叫具有文化特性名稱的靜態 GetCompareInfo 方法。 這允許對物件的晚期綁定存取 CompareInfo 。
忽略的搜尋值
字元集包含可忽略的字元,這些字元在執行語言或區分文化特性的比較時不列入考慮。 和 等IndexOfLastIndexOf比較方法在執行區分文化特性的比較時,不會考慮這類字元。 可忽略的字元包括:
String.Empty. 區分文化特性的比較方法一律會在所搜尋字串的開頭(索引零)找到空字串。
字元或字串,包含因比較選項而未在作業中考慮之字碼點的字元,特別是 CompareOptions.IgnoreNonSpace 和 CompareOptions.IgnoreSymbols 選項會產生搜尋,其中會忽略符號和非步調合併字元。
具有沒有語言意義的字碼點字串。 例如,區分文化特性的字串比較中一律會忽略軟連字元 (U+00AD)。
安全性考量
如果安全性決策取決於字串比較或大小寫變更,您應該使用 InvariantCulture 屬性來確保不論操作系統的文化特性設定為何,行為都是一致的。
注意
可能的話,您應該使用具有 型 CompareOptions 別參數的字串比較方法來指定預期的比較類型。 一般規則是,使用語言選項(使用目前的文化特性)來比較使用者介面中顯示的字串,並指定 Ordinal 或 OrdinalIgnoreCase 進行安全性比較。