Třída SortVersion

Tento článek obsahuje doplňující poznámky k referenční dokumentaci pro toto rozhraní API.

Řazení a porovnání řetězců v rozhraní .NET Framework

Prostřednictvím rozhraní .NET Framework 4 obsahovala každá verze rozhraní .NET Framework tabulky, které obsahovaly váhy řazení a data o normalizaci řetězců a které jsou založeny na konkrétní verzi Unicode. V rozhraní .NET Framework 4.5 a novějších verzích závisí přítomnost těchto tabulek na operačním systému:

  • Ve Windows 7 a předchozích verzích se tabulky nadále používají k porovnávání a řazení řetězců.
  • V systému Windows 8 rozhraní .NET Framework deleguje operace porovnávání řetězců a řazení do operačního systému.

Výsledek porovnání řetězců proto může záviset nejen na verzi rozhraní .NET Framework, ale také na verzi operačního systému, jak ukazuje následující tabulka. Všimněte si, že tento seznam podporovaných verzí Unicode se vztahuje pouze na porovnání a řazení znaků; nevztahuje se na klasifikaci znaků Unicode podle kategorie.

Verze rozhraní .NET Framework Operační systém Verze Unicode
4 Všechny operační systémy Unicode 5.0
4.5 a novější verze Windows 7 Unicode 5.0
4.5 a novější verze Windows 8 a novější verze Unicode 6.0

V systému Windows 8, protože verze Unicode použitá v porovnání řetězců a řazení závisí na verzi operačního systému, výsledky porovnání řetězců se mohou lišit i pro aplikace, které běží na konkrétní verzi rozhraní .NET Framework.

Řazení a porovnání řetězců v .NET Core

Při porovnávání řetězců spoléhají všechny verze .NET (Core) na základní operační systém. Výsledky porovnání řetězců nebo pořadí řazení řetězců proto závisí na verzi unicode používané operačním systémem při porovnávání. V systémech Linux, macOS a Windows 10 a novějších verzích poskytují knihovny International Components for Unicode implementaci pro rozhraní API pro porovnání a řazení.

Použití třídy SortVersion

Třída SortVersion poskytuje informace o verzi Unicode používané rozhraním .NET pro porovnání a řazení řetězců. Umožňuje vývojářům psát aplikace, které mohou detekovat a úspěšně zpracovávat změny ve verzi Unicode, která se používá k porovnání a řazení řetězců aplikace.

Vytvoření instance objektu SortVersion dvěma způsoby:

  • Zavoláním konstruktoru SortVersion , který vytvoří instanci nového SortVersion objektu na základě čísla verze a ID řazení. Tento konstruktor je nejužitečnější při opětovném vytvoření objektu SortVersion z uložených dat.
  • Načtením hodnoty CompareInfo.Version vlastnosti. Tato vlastnost poskytuje informace o verzi Unicode používanou implementací .NET, na které je aplikace spuštěna.

Třída SortVersion má dvě vlastnosti a FullVersionSortId, které označují verzi Unicode a konkrétní jazykovou verzi použitou pro porovnání řetězců. Vlastnost FullVersion je libovolná číselná hodnota, která odráží verzi Unicode použitou pro porovnání řetězců a SortId vlastnost je libovolná Guid , která odráží jazykovou verzi, jejíž konvence se používají pro porovnání řetězců. Hodnoty těchto dvou vlastností jsou důležité pouze v případě, že porovnáváte dva SortVersion objekty pomocí Equals metody, operátoru Equality nebo operátoru Inequality .

Objekt se obvykle používá SortVersion při ukládání nebo načítání určité formy jazykových verzí, seřazených řetězcových dat, například indexů nebo samotných literálových řetězců. To vyžaduje následující kroky:

  1. Při uložení FullVersion seřazených řetězcových dat se uloží také hodnoty vlastností SortId .

  2. Při načtení seřazených řetězcových dat můžete objekt použitý k řazení řetězců vytvořit znovu SortVersion voláním konstruktoru SortVersion .

  3. Tento nově vytvořený SortVersion objekt se porovnává s objektem SortVersion , který odráží jazykovou verzi, jejíž konvence se používají k seřazení řetězcových dat.

  4. Pokud se dva SortVersion objekty nerovnají, musí být data řetězce přeuspořádaná.