CompareOptions Перечисления
В этой статье приводятся дополнительные замечания к справочной документации по этому API.
Параметры CompareOptions указывают чувствительность к регистру или необходимость игнорировать типы символов.
.NET использует три различных способа сортировки: сортировку слов, сортировку строк и порядковый номер. Сортировка Word выполняет сравнение строк с учетом языка и региональных параметров. Некоторые нефазные символы могут иметь специальные весы, назначенные им. Например, дефис ("-") может иметь очень небольшой вес, назначенный ему, чтобы "coop" и "co-op" отображались рядом друг с другом в отсортированный список. Сортировка строк аналогична сортировке слов, за исключением того, что нет особых случаев. Поэтому все символы, не являющиеся цифрами, приходят до всех буквенно-цифровых символов. Порядковый сортировка сравнивает строки на основе значений Юникода каждого элемента строки. Скачиваемый набор текстовых файлов, содержащий сведения о весах символов, используемых в операциях сортировки и сравнения для операционных систем Windows, см. в разделе "Сортировка весовых таблиц". Таблица веса сортировки для Linux и macOS см. в таблице элементов Сортировки Юникода по умолчанию. Конкретная версия таблицы коэффициентов сортировки в Linux и macOS зависит от установленной в системе версии библиотек International Components for Unicode (ICU). Сведения о версиях ICU и реализуемых в них версиях Юникода см. на странице Downloading ICU (Скачивание ICU).
Значение StringSort
можно использовать только с CompareInfo.Compare и CompareInfo.GetSortKey. ArgumentExceptionВызывается, если значение StringSort используется с CompareInfo.IsPrefix, CompareInfo.IsSuffixCompareInfo.IndexOfили CompareInfo.LastIndexOf.
Примечание.
По возможности следует использовать методы сравнения строк, которые принимают CompareOptions значение, чтобы указать ожидаемый тип сравнения. Как правило, сравнение с пользователем лучше всего обслуживаться с помощью лингвистических параметров (с использованием текущего языка и региональных параметров), а сравнение безопасности должно указывать Ordinal
или OrdinalIgnoreCase
.
Сортировки с учетом языка и региональных параметров
Примечание.
.NET Core, работающей только в системах Linux и macOS: поведение сортировки для региональных параметров C и Posix всегда учитывает регистр, так как эти региональные параметры не используют ожидаемый порядок сортировки Юникода. Мы не рекомендуем использовать язык и региональные параметры, выбранные для C или Posix, для выполнения операций сортировки с учетом языка и региональных параметров, но без учета регистра.