Поделиться через


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

Перегрузки методов Array.Sort и Array.BinarySearch выполняют сортировку с учетом языка и региона, используя свойство Thread.CurrentCulture. Результат, возвращаемый этими методами, зависит от языка и региона и может различаться в различных средах из-за различий в порядках сортировки. Чтобы результат не зависел от языка и региональных параметров, используйте одну из перегрузок этого метода, которая принимает параметр comparer. Параметр comparer указывает реализацию интерфейса IComparer, используемую при сравнении элементов в массиве. Для параметра необходимо определить настраиваемый инвариантный класс сравнения, использующий свойство CultureInfo.InvariantCulture. Пример настраиваемого инвариантного класса сравнения приведен в подразделе "Использование класса SortedList" раздела Выполнение в коллекциях строковых операций, не зависящих от языка и региональных параметров.

Примечание. При передаче методу сравнения свойства CultureInfo.InvariantCulture сравнение выполняется без учета языка и региональных параметров. Однако это не приводит к нелингвистическому сравнению, например для путей к файлам, разделов реестра и переменных среды. Кроме того, при этом не поддерживается принятие решений системы безопасности на основе результатов сравнения. Для выполнения нелингвистического сравнения и принятия решений системы безопасности на основе результатов сравнения необходимо использовать метод сравнения, принимающий значение StringComparison. В этом случае приложение должно передавать значение Ordinal.

См. также

Ссылки

Array.Sort

Array.BinarySearch

IComparer

Другие ресурсы

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