SortVersion 類別
本文提供此 API 參考文件的補充備註。
.NET Framework 中的排序和字串比較
透過 .NET Framework 4,每個 .NET Framework 版本都包含包含字串正規化之排序權數和數據,以及以特定版本的 Unicode 為基礎的數據表。 在 .NET Framework 4.5 和更新版本中,這些數據表的存在取決於操作系統:
- 在 Windows 7 和舊版上,數據表會繼續用於比較和排序字串。
- 在 Windows 8 上,.NET Framework 會將字串比較和排序作業委派給操作系統。
因此,字串比較的結果不只取決於 .NET Framework 版本,而且取決於操作系統版本,如下表所示。 請注意,這份支援的 Unicode 版本清單僅適用於字元比較和排序,並不適用於依類別來分類 Unicode 字元。
.NET Framework 版本 | 作業系統 | Unicode 版本 |
---|---|---|
4 | 所有作業系統 | Unicode 5.0 |
4.5 和更新版本 | Windows 7 | Unicode 5.0 |
4.5 和更新版本 | Windows 8 和更新版本 | Unicode 6.0 |
在 Windows 8 上,因為字串比較和排序中使用的 Unicode 版本取決於作業系統版本,因此即使在特定 .NET Framework 版本上執行的應用程式,字串比較的結果也可能會有所不同。
.NET Core 中的排序和字串比較
執行字串比較時,所有 .NET (Core) 版本都依賴基礎操作系統。 因此,字串比較的結果或字串排序順序取決於操作系統在執行比較時所使用的 Unicode 版本。 在 Linux、macOS 和 Windows 10 和更新版本上, Unicode 連結庫的國際元件提供比較和排序 API 的實作。
使用 SortVersion 類別
類別 SortVersion 提供 .NET 用於字串比較和排序之 Unicode 版本的相關信息。 它可讓開發人員撰寫應用程式,以偵測並成功處理 Unicode 版本中用來比較和排序應用程式字串的變更。
您可以透過兩種方式具現化 SortVersion 物件:
- 藉由呼叫 建 SortVersion 構函式,以版本號碼和排序標識元為基礎具現化新的 SortVersion 物件。 從儲存的數據重新建立 SortVersion 物件時,這個建構函式最有用。
- 藉由擷取 屬性的值 CompareInfo.Version 。 此屬性提供應用程式執行所在的 .NET 實作所使用的 Unicode 版本相關信息。
類別 SortVersion 有兩個屬性和 FullVersionSortId,表示 Unicode 版本和用於字串比較的特定文化特性。 屬性 FullVersion 是一個任意數值,反映用於字串比較的 Unicode 版本,而 SortId 屬性是一種任意 Guid 值,可反映其慣例用於字串比較的文化特性。 只有當您使用 Equals 方法、Equality運算符或 Inequality 運算符來比較兩個物件時,這兩個SortVersion屬性的值才很重要。
您通常會在儲存或擷取某種形式的區分文化特性、已排序的字串數據時使用 SortVersion 物件,例如索引或常值字串本身。 此時,您需要進行下列步驟:
儲存已排序的字串數據時, FullVersion 也會儲存 和 SortId 屬性值。
擷取已排序的字串數據時,您可以藉由呼叫 SortVersion 建構函式來重新建立SortVersion用來排序字串的物件。
這個新具現化 SortVersion 的物件會與反映其慣例用來排序字串數據之文化特性的對象進行比較 SortVersion 。
如果兩個 SortVersion 物件不相等,則必須重新排序字串數據。