Класс CompareInfo

В этой статье приводятся дополнительные замечания к справочной документации по этому API.

Соглашения о сравнении и сортировке данных зависят от языка и региональных параметров. Например, порядок сортировки может зависеть от фонетики или визуального представления символов. На восточноазиатских языках символы сортируются по росчерку и радикалу иеографов. Сортировка также зависит от языков порядка и региональных параметров, используемых для алфавита. Например, датский язык имеет символ "Æ", который сортируется после "Z" в алфавите. Кроме того, сравнения могут быть чувствительными к регистру или нечувствительными к регистру, а правила регистра могут отличаться и региональными параметрами. Класс CompareInfo отвечает за поддержание данных сравнения строк с учетом языка и региональных параметров и выполнения операций с учетом языка и региональных параметров.

Как правило, не нужно создавать экземпляр CompareInfo объекта напрямую, так как он используется неявно всеми операциями сравнения строк без порядкового номера, включая вызовы String.Compare метода. Однако если вы хотите получить CompareInfo объект, это можно сделать одним из следующих способов:

  • Извлекая значение свойства для определенного CultureInfo.CompareInfo языка и региональных параметров.

  • Вызывая статический GetCompareInfo метод с именем языка и региональных параметров. Это позволяет получить доступ к объекту с поздней привязкой CompareInfo .

Пропущенные значения поиска

Наборы символов содержат игнорируемые символы, то есть символы, которые не учитываются при выполнении лингвистического сравнения или сравнения с учетом языка и региональных параметров. Такие методы сравнения, как IndexOf и LastIndexOf не учитывают такие символы при выполнении сравнения с учетом языка и региональных параметров. В число пропущенных символов входят следующие:

  • String.Empty. Методы сравнения с учетом языка и региональных параметров всегда будут находить пустую строку в начале (ноль индекса) для выполняемой поиска строки.

  • Символ или строка, состоящая из символов с точками кода, которые не учитываются в операции из-за параметров сравнения, в частности, CompareOptions.IgnoreNonSpace и CompareOptions.IgnoreSymbols параметры создают поиски, в которых символы и неспециализируются объединения символов.

  • Строка с точками кода, не имеющими лингвистического значения. Например, мягкий дефис (U+00AD) всегда игнорируется в сравнении строк с учетом языка и региональных параметров.

Вопросы безопасности

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

Примечание.

По возможности следует использовать методы сравнения строк, имеющие параметр типа CompareOptions , чтобы указать ожидаемый тип сравнения. В качестве общего правила используйте языковые параметры (с использованием текущего языка и региональных параметров) для сравнения строк, отображаемых в пользовательском интерфейсе, и укажите Ordinal или OrdinalIgnoreCase для сравнения безопасности.