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


Класс System.StringComparer

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

Объект, производный от StringComparer класса, воплощает строковое сравнение, равенство и хэш-кодовые операции, которые учитывают как регистр, так и правила сравнения, зависящие от языка и региональных параметров. Класс можно использовать StringComparer для создания сравнения типа для сортировки элементов в универсальной коллекции. Такие классы, как Hashtable, Dictionary<TKey,TValue>SortedListи SortedList<TKey,TValue> используют StringComparer класс для сортировки.

Операция сравнения, представленная классом StringComparer , определяется как учет регистра, так и не учитывает регистр, а также использовать правила сравнения слов (с учетом языка и региональных параметров) или порядковых (нечувствительных языка и региональных параметров). Дополнительные сведения о правилах сравнения слов и порядкового номера см. в разделе System.Globalization.CompareOptions.

Примечание.

Вы можете скачать таблицу элементов сортировки Юникода по умолчанию, последнюю версию таблицы веса сортировки. Конкретная версия таблицы веса сортировки зависит от версии международных компонентов библиотек Юникода , установленных в системе. Сведения о версиях ICU и реализуемых в них версиях Юникода см. на странице Downloading ICU (Скачивание ICU).

Для платформа .NET Framework в Windows можно скачать набор текстовых файлов, содержащих сведения о весах символов, используемых в операциях сортировки и сравнения.

Реализованные свойства

Возможно, вы запутались в том, как использовать StringComparer свойства класса из-за кажущегося противоречия. Класс StringComparer объявлен abstract (MustInherit в Visual Basic), что означает, что его члены могут вызываться только для объекта класса, производного от StringComparer класса. Противоречие заключается в том, что каждое свойство StringComparer класса объявляется static (Shared в Visual Basic), что означает, что свойство может вызываться без первого создания производного класса.

Можно вызвать свойство напрямую StringComparer , так как каждое свойство фактически возвращает экземпляр анонимного класса, производного от StringComparer класса. Следовательно, тип каждого значения свойства — StringComparerэто базовый класс анонимного класса, а не тип самого анонимного класса. Каждое StringComparerStringComparer свойство класса возвращает объект, поддерживающий предопределенные правила регистра и сравнения.