Выполнение строковых операций, не зависящих от языка и региональных параметров

Операции со строками с учетом языка и региональных параметров могут представлять преимущество, если вы разрабатываете приложения, предназначенные для отображения пользователям результатов с учетом языка и региональных параметров. По умолчанию методы, зависящие от языка и региона, используют значение среды, содержащееся в свойстве CurrentCulture для текущего потока.

Строковые операции с учетом языка и региона не всегда возвращают ожидаемый результат. При выполнении операций с учетом языка и региональных параметров, если результат не должен зависеть от параметров, возможен сбой кода приложения при работе с параметрами, к которым применяются особые правила сопоставления регистра и сортировки. Пример см. в разделе Сравнения строк, которые используют текущие язык и региональные параметры в руководстве Рекомендации по использованию строк.

Должны ли строковые операции зависеть от языка и региона определяется тем, как приложение использует результаты этих операций. Обычно строковые операции, отображающие результат конечному пользователю, должны зависеть от языка и региона. Например, если в приложении отображается отсортированный список локализованных строк, то сортировка должна выполняться с учетом языка и региональных параметров.

Результаты строковых операций, используемые внутри кода, обычно не должны зависеть от языка и региона. В общем случае при работе с именами файлов, форматами хранения или символьными данными, которые не отображаются конечному пользователю, результаты строковых операций не должны зависеть от языка и региона. Например, если в приложении выполняется сравнение строки, чтобы определить, является ли она тегом XML, то сравнение не должно зависеть от языка и региона. Кроме того, если решение, влияющее на безопасность, основано на результате операций сравнения строк или изменения регистра, они не должны зависеть от языка и региона, чтобы гарантировать, что на результат не повлияет значение параметра CurrentCulture.

Большинство методов .NET, которые по умолчанию выполняют операции со строками с учетом языка и региональных параметров, также предоставляют перегрузку, которая гарантирует, что результаты не будут зависеть от языка и региональных параметров. Эти перегрузки, которые принимают аргумент CultureInfo, позволяют устранить соответствующие различия в сопоставлениях регистров и правилах сортировки. Для операций со строками без учета языка и региональных параметров укажите CultureInfo.InvariantCulture.

В этом разделе

В этом разделе содержатся статьи, в которых показано, как выполнять операции со строками без учета языка и региональных параметров с помощью методов .NET, которые по умолчанию учитывают язык и региональные параметры.

Сравнение строк без учета языка и региональных параметров
Описывает использование методов String.Compare и String.CompareTo для сравнения строк без учета языка и региональных параметров.

Изменение регистра без учета языка и региональных параметров
Описывает использование методов String.ToUpper, String.ToLower, Char.ToUpper и Char.ToLower для изменения регистра символов без учета языка и региональных параметров.

Выполнение операций со строками без учета языка и региональных параметров в коллекциях
Описывает использование CaseInsensitiveComparer, класса CaseInsensitiveHashCodeProvider, SortedList, ArrayList.Sort и CollectionsUtil.CreateCaseInsensitiveHashtable для сравнения коллекций без учета языка и региональных параметров.

Выполнение операций со строками без учета языка и региональных параметров в массивах
Описывает использование методов Array.Sort и Array.BinarySearch для операций над массивами без учета языка и региональных параметров.

См. также