Klasa SortVersion

Ten artykuł zawiera dodatkowe uwagi dotyczące dokumentacji referencyjnej dla tego interfejsu API.

Sortowanie i porównywanie ciągów w programie .NET Framework

Za pomocą programu .NET Framework 4 każda wersja programu .NET Framework zawierała tabele zawierające wagi sortowania i dane dotyczące normalizacji ciągów i oparte na określonej wersji unicode. W programie .NET Framework 4.5 lub nowszym obecność tych tabel zależy od systemu operacyjnego:

  • W systemie Windows 7 i poprzednich wersjach tabele będą nadal używane do porównywania i porządkowania ciągów.
  • W systemie Windows 8 program .NET Framework deleguje porównanie ciągów i operacje porządkowania do systemu operacyjnego.

W związku z tym wynik porównania ciągów może zależeć nie tylko od wersji programu .NET Framework, ale także wersji systemu operacyjnego, jak pokazano w poniższej tabeli. Należy pamiętać, że ta lista obsługiwanych wersji Unicode ma zastosowanie tylko do porównywania znaków i sortowania; nie ma zastosowania do klasyfikacji znaków Unicode według kategorii.

Wersja systemu .NET Framework System operacyjny Wersja Unicode
100 Wszystkie systemy operacyjne Unicode 5.0
4.5 i nowsze wersje Windows 7 Unicode 5.0
4.5 i nowsze wersje Windows 8 i nowsze wersje Unicode 6.0

W systemie Windows 8, ponieważ wersja Unicode używana w porównywaniu ciągów i porządkowania zależy od wersji systemu operacyjnego, wyniki porównania ciągów mogą się różnić nawet w przypadku aplikacji działających w określonej wersji programu .NET Framework.

Porównanie sortowania i ciągów na platformie .NET Core

Wszystkie wersje platformy .NET (Core) bazują na podstawowym systemie operacyjnym podczas przeprowadzania porównań ciągów. W związku z tym wyniki porównania ciągów lub kolejności sortowania ciągów zależą od wersji Unicode używanej przez system operacyjny podczas porównywania. W systemach Linux, macOS i Windows 10 i nowszych wersjach międzynarodowe składniki dla bibliotek Unicode zapewniają implementację interfejsów API porównywania i sortowania.

Korzystanie z klasy SortVersion

Klasa SortVersion zawiera informacje o wersji Unicode używanej przez platformę .NET na potrzeby porównywania i porządkowania ciągów. Umożliwia deweloperom pisanie aplikacji, które mogą wykrywać i pomyślnie obsługiwać zmiany w wersji Unicode używanej do porównywania i sortowania ciągów aplikacji.

Wystąpienie obiektu można utworzyć SortVersion na dwa sposoby:

  • Wywołując SortVersion konstruktor, który tworzy wystąpienie nowego SortVersion obiektu na podstawie numeru wersji i identyfikatora sortowania. Ten konstruktor jest najbardziej przydatny podczas ponownego SortVersion tworzenia obiektu z zapisanych danych.
  • Pobierając wartość CompareInfo.Version właściwości. Ta właściwość zawiera informacje o wersji Unicode używanej przez implementację platformy .NET, na której działa aplikacja.

Klasa SortVersion ma dwie właściwości i FullVersionSortId, które wskazują wersję Unicode i konkretną kulturę używaną do porównywania ciągów. Właściwość FullVersion jest dowolną wartością liczbową, która odzwierciedla wersję Unicode używaną do porównywania ciągów, a SortId właściwość jest dowolną Guid wartością odzwierciedlającą kulturę, której konwencje są używane do porównywania ciągów. Wartości tych dwóch właściwości są ważne tylko podczas porównywania dwóch SortVersion obiektów przy użyciu Equals metody, Equality operatora lub Inequality operatora.

Zazwyczaj używasz obiektu podczas zapisywania lub pobierania jakiejś formy danych ciągów wrażliwych na kulturę SortVersion , takich jak indeksy lub same ciągi literału. Wymaga to wykonania następujących czynności:

  1. Po zapisaniu uporządkowanych danych ciągów FullVersion wartości właściwości i SortId są również zapisywane.

  2. Po pobraniu uporządkowanych danych ciągu można ponownie utworzyć SortVersion obiekt używany do porządkowania ciągów przez wywołanie konstruktora SortVersion .

  3. Ten nowo utworzony SortVersion obiekt jest porównywany z obiektem, który odzwierciedla kulturę SortVersion , której konwencje są używane do zamawiania danych ciągu.

  4. Jeśli dwa SortVersion obiekty nie są równe, dane ciągu muszą zostać ponownie uporządkowane.