Класс SortVersion

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

Сортировка и сравнение строк в платформа .NET Framework

До платформа .NET Framework 4 каждая версия платформа .NET Framework включала таблицы, содержащие весы сортировки и данные по нормализации строк и основанные на определенной версии Юникода. В платформа .NET Framework версии 4.5 и более поздних версий наличие этих таблиц зависит от операционной системы:

  • В Windows 7 и предыдущих версиях таблицы продолжают использоваться для сравнения и упорядочивания строк.
  • В Windows 8 платформа .NET Framework делегирует операции сравнения строк и упорядочивания в операционную систему.

Следовательно, результат сравнения строк может зависеть не только от платформа .NET Framework версии, но и от версии операционной системы, как показано в следующей таблице. Обратите внимание, что этот список поддерживаемых версий Юникода применяется только к сравнению и сортировке символов. Он не применяется для классификации символов Юникода по категориям.

Версия платформы .NET Framework Операционная система Версия Юникода
4 Все операционные системы Юникод 5.0
Версии 4.5 и более поздних версий Windows 7 Юникод 5.0
Версии 4.5 и более поздних версий Windows 8 и более поздние версии Юникод 6.0

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

Сортировка и сравнение строк в .NET Core

Все версии .NET (Core) полагаются на базовую операционную систему при выполнении сравнения строк. Поэтому результаты сравнения строк или порядка сортировки строк зависят от версии Юникода, используемой операционной системой при выполнении сравнения. В Linux, macOS и Windows 10 и более поздних версиях международные компоненты для библиотек Юникода предоставляют реализацию для сравнения и сортировки API.

Использование класса SortVersion

Класс SortVersion содержит сведения о версии Юникода, используемой .NET для сравнения строк и упорядочивания. Это позволяет разработчикам создавать приложения, которые могут обнаруживать и успешно обрабатывать изменения в версии Юникода, которая используется для сравнения и сортировки строк приложения.

Создать экземпляр SortVersion объекта можно двумя способами:

  • Вызывая SortVersion конструктор, который создает экземпляр нового SortVersion объекта на основе номера версии и идентификатора сортировки. Этот конструктор наиболее полезен при повторном SortVersion создании объекта из сохраненных данных.
  • Извлекая значение CompareInfo.Version свойства. Это свойство содержит сведения о версии Юникода, используемой реализацией .NET, в которой выполняется приложение.

Класс SortVersion имеет два свойства, FullVersion а SortIdтакже указывает версию Юникода и конкретный язык и региональные параметры, используемые для сравнения строк. Свойство FullVersion является произвольным числовым значением, которое отражает версию Юникода, используемую для сравнения строк, и SortId свойство является произвольным Guid , которое отражает язык и региональные параметры, соглашения которых используются для сравнения строк. Значения этих двух свойств важны только при сравнении двух SortVersion объектов с помощью Equals метода, Equality оператора или Inequality оператора.

SortVersion Обычно при сохранении или извлечении некоторых форм параметров и региональных параметров, упорядоченных строковых данных, таких как индексы или сами литеральные строки. Для этого необходимо выполнить следующие действия:

  1. При сохранении FullVersion упорядоченных строковых данных значения и SortId значения свойств также сохраняются.

  2. При извлечении упорядоченных строковых данных можно повторно создать SortVersion объект, используемый для упорядочивания строк, вызвав SortVersion конструктор.

  3. Этот новый экземпляр SortVersion объекта сравнивается с SortVersion объектом, который отражает язык и региональные параметры, соглашения которых используются для упорядочивания строковых данных.

  4. Если два SortVersion объекта не равны, строковые данные должны быть переупорядочены.