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


Сортировка в соответствии с региональными параметрами

Обновлен: Ноябрь 2007

Сортировка строк зависит от правил сортировки, используемых для сравнения и, следовательно, упорядочения пар строк. Когда приложение выполняет операцию сравнения, оно может либо явно задать правило сортировки с одним или несколькими значениями перечисления CompareOptions, либо неявно задать правило сортировки с объектом CultureInfo.

.NET Framework поддерживает правила сортировки по словам, строкам и порядковым номерам. Сортировка по словам выполняет сравнение строк с учетом языка и региона, при котором некоторые символы Юникода, отличные от букв и цифр, могут иметь специально присвоенные им весовые коэффициенты. Например, дефису (-) можно присвоить очень низкий весовой коэффициент, и тогда в отсортированном списке слова "coop" и "co-op" окажутся рядом. Сортировка по строкам аналогична сортировке по словам, за исключением того, что особых случаев нет и все буквы и цифры следуют после всех остальных символов Юникода. При сортировке по порядковому номеру строки сравниваются на основе числовых значений каждого объекта Char в строке. Дополнительные сведения о сортировке по словам, строкам и порядковым номерам см. в разделе CompareOptions.

.NET Framework представляет строки с классом String, а каждый символ Юникода в строке со структурой Char. Языковые и региональные параметры представлены с классом CultureInfo, а характерные для конкретного языка и региона сведения, которые относятся к сравнению, представлены классом CompareInfo. Классы String и CompareInfo являются основными источниками методов сравнения. В операциях сравнения используется язык и региональные параметры, связанные с текущим потоком, если не задано иначе.

Случаи и способы сравнения с языковыми и региональными параметрами

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

  • Если приложению требуется операция сортировки, зависящая от конкретного языка и региона, оно должно использовать метод сравнения, задающий объект CultureInfo или CompareOptions параметр перечисления.

  • Если приложению не требуется операция сортировки, характерная для конкретного языка и региона, для него необходимо задать инвариантный язык или использовать порядковую сортировку. Например, для сортировки имен файлов, мьютексов и именованных каналов приложение использует порядковое сравнение. Дополнительные сведения об инвариантном языке см. в разделе Использование свойства InvariantCulture. Дополнительные сведения о порядковой сортировке см. в разделе Нормализация и сортировка.

  • Если приложение принимает решение безопасности на основании сортировки строк, следует использовать порядковую сортировку.

ms230123.alert_caution(ru-ru,VS.90).gifВажное примечание.

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

См. также

Основные понятия

Использование свойства InvariantCulture

Нормализация и сортировка