SortVersion classe

Observação

Este artigo fornece observações complementares à documentação de referência para esta API.

Classificação e comparação de cadeia de caracteres no .NET Framework

Através do .NET Framework 4, cada versão do .NET Framework incluía tabelas que continham pesos de classificação e dados sobre normalização de cadeia de caracteres e que se baseiam em uma versão específica do Unicode. No .NET Framework 4.5 e versões posteriores, a presença dessas tabelas depende do sistema operacional:

  • No Windows 7 e versões anteriores, as tabelas continuam a ser usadas para comparar e ordenar cadeias de caracteres.
  • No Windows 8, o .NET Framework delega operações de comparação e ordenação de cadeia de caracteres ao sistema operacional.

Consequentemente, o resultado de uma comparação de cadeia de caracteres pode depender não apenas da versão do .NET Framework, mas também da versão do sistema operacional, como mostra a tabela a seguir. Observe que essa lista de versões Unicode suportadas se aplica apenas à comparação e classificação de caracteres; não se aplica à classificação de caracteres Unicode por categoria.

Versão do .NET Framework Sistema operativo Versão Unicode
4 Todos os sistemas operativos Unicode 5.0
4.5 e versões posteriores Windows 7 Unicode 5.0
4.5 e versões posteriores Windows 8 e versões posteriores Unicode 6.0

No Windows 8, como a versão do Unicode usada na comparação e ordenação de cadeia de caracteres depende da versão do sistema operacional, os resultados da comparação de cadeia de caracteres podem diferir mesmo para aplicativos que são executados em uma versão específica do .NET Framework.

Classificação e comparação de cadeia de caracteres no .NET Core

Todas as versões do .NET (Core) dependem do sistema operacional subjacente ao executar comparações de cadeia de caracteres. Portanto, os resultados de uma comparação de cadeia de caracteres ou a ordem na qual as cadeias de caracteres são classificadas dependem da versão do Unicode usada pelo sistema operacional ao executar a comparação. No Linux, macOS e Windows 10 e versões posteriores, as bibliotecas International Components for Unicode fornecem a implementação para APIs de comparação e classificação.

Use a classe SortVersion

A SortVersion classe fornece informações sobre a versão Unicode usada pelo .NET para comparação e ordenação de cadeia de caracteres. Ele permite que os desenvolvedores escrevam aplicativos que podem detetar e manipular com êxito alterações na versão do Unicode que é usada para comparar e classificar as cadeias de caracteres de um aplicativo.

Você pode instanciar um SortVersion objeto de duas maneiras:

  • Ao chamar o construtor SortVersion, que instancia um novo objeto SortVersion com base num número de versão e um ID de ordenação. Este construtor é mais útil ao recriar um SortVersion objeto a partir de dados salvos.
  • Recuperando o valor da propriedade CompareInfo.Version. Esta propriedade fornece informações sobre a versão Unicode usada pela implementação .NET na qual o aplicativo está sendo executado.

A SortVersion classe tem duas propriedades FullVersion e SortId, que indicam a versão Unicode e a cultura específica usada para comparação de cadeia de caracteres. A propriedade FullVersion é um valor numérico arbitrário que reflete a versão Unicode, usada para comparação de sequências de caracteres, e a propriedade SortId é um Guid arbitrário que reflete a cultura cujas convenções são usadas para comparação de sequências de caracteres. Os valores dessas duas propriedades são importantes somente quando você compara dois SortVersion objetos usando o Equals método, o Equality operador ou o Inequality operador.

Normalmente, você usa um SortVersion objeto ao salvar ou recuperar alguma forma de dados de cadeia de caracteres ordenada e sensíveis à cultura, como índices ou as próprias cadeias de caracteres literais. Isso requer as seguintes etapas:

  1. Quando uma cadeia de caracteres ordenada é salva, os valores das propriedades FullVersion e SortId também são salvos.

  2. Quando os dados de cadeia de caracteres ordenados são recuperados, você pode recriar o SortVersion objeto usado para ordenar as cadeias de caracteres chamando o SortVersion construtor.

  3. Esse objeto recém-instanciado SortVersion é comparado com um SortVersion objeto que reflete a cultura cujas convenções são usadas para ordenar os dados da cadeia de caracteres.

  4. Se os dois SortVersion objetos não forem iguais, os dados da cadeia de caracteres deverão ser reordenados.