Řazení pomocí jazykových verzí
Řazení řetězců závisí na pravidlech řazení používaných k porovnávání, a pak řazení, dvojice řetězců. Pokud aplikace provádí operace porovnání, lze buď explicitně zadat pravidlo řazení pomocí jedné nebo více hodnot výčtu CompareOptions nebo zadat implicitně pravidlo řazení s objektem CultureInfo.
Rozhraní .NET Framework podporuje slovní, řetězcové a pořadové pravidla řazení. Řazení slov provádí porovnání řetězců zohledňující jazykovou verzi, ve které určité nealfanumerické znaky Unicode mohou mít zvláštní váhu, která jim byla přidělena. Například pomlčka ("-") bude mít pravděpodobně velmi malou přiřazenou váhu, aby se "coop" a "co-op" zobrazilo vedle sebe v seřazeném seznamu. Řazení řetězců je podobné řazení slov, s výjimkou toho, že zde nejsou žádné zvláštní případy a všechny nealfanumerické symboly předcházejí všechny alfanumerické znaky Unicode. Pořadové řazení porovná řetězec podle číselné hodnoty každého objektu Char v řetězci. Další informace o pravidlech řazení slov, řetězců a pořadí naleznete v tématu CompareOptions.
Rozhraní .NET Framework představuje řetězec třídou String a každý znak Unicode v řetězci strukturou Char. Jazykové verze jsou reprezentovány třídou CultureInfo a informace specifické pro jednotlivé jazykové verze, které se vztahují k porovnání, jsou reprezentovány třídou CompareInfo. Třídy String a CompareInfo jsou primární zdroje pro porovnání metod. Operace porovnání používají přidružené jazykové verze s aktuálním vláknem, pokud není stanoveno jinak.
Kdy a jak porovnat s jazykovými verzemi
Řiďte se následujícími pokyny k rozhodnutí, zda má vaše aplikace provést porovnání citlivé na jazykovou verzi:
Jestliže vaše aplikace požaduje operaci řazení, která závisí na konkrétní jazykové verzi, měla by použít metodu porovnání, která určuje objekt CultureInfo nebo parametr výčtu CompareOptions.
Pokud aplikace vyžaduje operaci řazení, která není specifická pro konkrétní jazykovou verzi, měla by určit nezávislou jazykovou verzi nebo použít pořadové řazení. Aplikace například používá pořadové porovnávání k řazení názvů souborů, mutexů a pojmenovaných kanálů. Další informace o nezávislé jazykové verzi naleznete v tématu Použití vlastnosti InvariantCulture. Další informace o pořadovém řazení naleznete v tématu Normalizace a řazení.
Pokud vaše aplikace provede rozhodnutí zabezpečení na základě řazení řetězců, použijte pořadové řazení.
Důležité |
---|
Předchozí rada k použití nezávislé jazykové verze v operaci porovnání, která se používá k rozhodování zabezpečení, byla nahrazena.Vhodnější je, když aplikace použije pořadové porovnávání. |