Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
Este artigo fornece comentários complementares à documentação de referência para esta API.
Classificação e comparação de cadeia de caracteres no .NET Framework
Por meio do .NET Framework 4, cada versão do .NET Framework incluía tabelas que continham pesos de classificação e dados sobre a normalização da 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 nas 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 cadeias 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 com suporte se aplica somente à comparação e à classificação de caracteres; não se aplica à classificação de caracteres Unicode por categoria.
| Versão do .NET Framework | Sistema Operacional | Versão unicode |
|---|---|---|
| 4 | Todos os sistemas operacionais | 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 de cadeia de caracteres e na ordenação depende da versão do sistema operacional, os resultados da comparação de cadeia de caracteres podem ser diferentes até mesmo para aplicativos 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 da 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, os Componentes Internacionais para bibliotecas Unicode fornecem a implementação de APIs de comparação e classificação.
Usar a classe SortVersion
A SortVersion classe fornece informações sobre a versão Unicode usada pelo .NET para a comparação e a ordenação de cadeias de caracteres. Ele permite que os desenvolvedores escrevam aplicativos que podem detectar e lidar com alterações com êxito na versão do Unicode que é usada para comparar e classificar as cadeias de caracteres de um aplicativo.
Você pode criar uma instância de um SortVersion objeto de duas maneiras:
- Chamando o construtor SortVersion, que instancia um novo objeto SortVersion com base em um número de versão e ID de classificação. Esse construtor é mais útil ao recriar um SortVersion objeto de dados salvos.
- Recuperando o valor da propriedade CompareInfo.Version. Essa propriedade fornece informações sobre a versão Unicode usada pela implementação do .NET na qual o aplicativo está em execução.
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 FullVersion propriedade é um valor numérico arbitrário que reflete a versão Unicode usada para comparação de cadeia de caracteres, e a SortId propriedade é uma arbitrária Guid que reflete a cultura cujas convenções são usadas para comparação de cadeia 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 ordenados e sensíveis à cultura, como índices ou as próprias cadeias de caracteres literais. Isso requer as seguintes etapas:
Quando os dados de cadeia de caracteres ordenados são salvos, os valores das propriedades FullVersion e SortId também são salvos.
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.
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.
Se os dois SortVersion objetos não forem iguais, os dados da cadeia de caracteres deverão ser reordenados.