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


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

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

Замечание

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

См. также