CompareOptions Výčtu
Tento článek obsahuje doplňující poznámky k referenční dokumentaci pro toto rozhraní API.
Možnosti CompareOptions označují citlivost písmen nebo nutnost ignorovat typy znaků.
.NET používá tři různé způsoby řazení: řazení slov, řazení řetězců a řadové řazení. Řazení slov provádí porovnání řetězců citlivých na jazykovou verzi. Některé neosamocené znaky mohou mít přiřazené speciální váhy. Například spojovník ("-") může mít přiřazenou velmi malou váhu, aby se vedle sebe zobrazovaly "coop" a "co-op" v seřazeném seznamu. Řazení řetězců je podobné řazení slov s tím rozdílem, že neexistují žádné zvláštní případy. Proto všechny neosamocené symboly přicházejí před všechny alfanumerické znaky. Řadové řazení porovnává řetězce na základě hodnot Unicode každého prvku řetězce. Informace o sadě textových souborů, které obsahují informace o hmotnosti znaků použitých při řazení a porovnávání operací pro operační systémy Windows, naleznete v tématu Řazení tabulek váhy. Tabulku hmotnosti řazení pro Linux a macOS najdete v tabulce výchozích prvků kolace unicode. Konkrétní verze tabulky hmotnosti řazení v Systému Linux a macOS závisí na verzi knihoven International Components for Unicode nainstalovaných v systému. Informace o verzích ICU a verzích Unicode, které implementují, najdete v tématu Stažení ICU.
Hodnotu StringSort
lze použít pouze s CompareInfo.Compare a CompareInfo.GetSortKey. ArgumentException je vyvolán, pokud je hodnota StringSort použita s CompareInfo.IsPrefix, CompareInfo.IsSuffix, CompareInfo.IndexOfnebo CompareInfo.LastIndexOf.
Poznámka:
Pokud je to možné, měli byste použít metody porovnání řetězců, které přijímají CompareOptions hodnotu k určení druhu očekávaného porovnání. Obecně platí, že uživatelsky orientované porovnání nejlépe obslouží použití jazykových možností (s použitím aktuální jazykové verze), zatímco porovnání zabezpečení by mělo být zadáno Ordinal
nebo OrdinalIgnoreCase
.
Řazení citlivá na jazykovou verzi
Poznámka:
.NET Core spuštěné jenom v systémech Linux a macOS: Chování kolace pro jazykové verze jazyka C a Posix je vždy citlivé na velká a malá písmena, protože tyto jazykové verze nepoužívají očekávané pořadí kolace Unicode. Doporučujeme použít jinou jazykovou verzi než jazyk C nebo Posix pro provádění operací řazení nerozlišující malá a velká písmena.