Provádění řetězcových operací nezávislých na jazykové verzi

Operace řetězců citlivé na jazykovou verzi jsou výhodné, pokud vytváříte aplikace navržené tak, aby zobrazovaly výsledky uživatelům na základě jazykové verze. Ve výchozím nastavení metody citlivé na jazykovou verzi získávají jazykovou verzi, která se má použít z CurrentCulture vlastnosti pro aktuální vlákno.

V některých případech nejsou operace řetězce citlivé na jazykovou verzi požadované chování. Používání operací závislých na jazykové verzi v případě, že výsledky by měly být na jazykové verzi nezávislé, může způsobit selhání kódu aplikace v jazykových verzích s vlastními pravidly mapování a řazení. Příklad najdete v části Porovnání řetězců, které používají část Aktuální jazyková verze v osvědčených postupech pro používání řetězců.

Skutečnost, zda operace s řetězci mají být závislé nebo nezávislé na jazykové verzi, závisí na tom, jakým způsobem aplikace pracuje s výsledky. Operace s řetězci, které zobrazují výsledky uživateli, by měly být většinou závislé na jazykové verzi. Pokud například konkrétní aplikace zobrazuje seřazený seznam lokalizovaných řetězců v seznamu, měla by aplikace provést řazení závislé na jazykové verzi.

Výsledky operací s řetězci, které se používají interně, by měly být většinou nezávislé na jazykové verzi. Obecně platí, že pokud aplikace pracuje s názvy souborů, formáty persistence nebo symbolickými informacemi, které se uživateli nezobrazují, neměly by se výsledky operací s řetězci lišit podle jazykové verze. Pokud aplikace například porovnává řetězec a chce určit, zda se jedná o rozpoznanou značku XML, porovnání by nemělo být závislé na jazykové verzi. Pokud je navíc rozhodnutí o zabezpečení založené na výsledku operace porovnání řetězců nebo změny velikosti písmen, měla by být operace nerozlišující jazykovou verzi, aby se zajistilo, že výsledek nebude ovlivněn hodnotou CurrentCulture.

Většina metod .NET, které ve výchozím nastavení provádějí operace řetězce citlivé na jazykovou verzi, také poskytují přetížení, které umožňuje zaručit výsledky bez rozlišení jazykové verze. Tato přetížení, která přebírají CultureInfo argument, umožňují eliminovat kulturní variace v případě mapování a pravidel řazení. Pro operace s řetězci nerozlišující jazykovou verzi zadejte jazykovou verzi jako CultureInfo.InvariantCulture.

V této části

Články v této části ukazují, jak provádět operace řetězců bez rozlišení jazykové verze pomocí metod .NET, které jsou ve výchozím nastavení citlivé na jazykovou verzi.

Provádění porovnání řetězců bez rozlišení jazykové verze
Popisuje, jak používat String.Compare a String.CompareTo metody k provádění porovnání řetězců bez rozlišení jazykové verze.

Provádění změn malých a malých písmen bez rozlišování jazykové verze
Popisuje, jak používat String.ToUpper, String.ToLower, Char.ToUppera Char.ToLower metody k provádění změn nerozlišující jazykové verze malá a velká písmena.

Provádění operací řetězců bez rozlišení jazykové verze v kolekcích
Popisuje, jak používat CaseInsensitiveComparer, CaseInsensitiveHashCodeProvider třídy ArrayList.SortSortedLista CollectionsUtil.CreateCaseInsensitiveHashtable provádět operace bez rozlišení jazykové verze v kolekcích.

Provádění operací řetězců bez rozlišení jazykové verze v polích
Popisuje, jak používat Array.Sort a Array.BinarySearch metody k provádění operací bez rozlišení jazykové verze v polích.

Viz také