CompareOptionsenum
Este artigo fornece observações complementares à documentação de referência para essa API.
As opções CompareOptions indicam diferenciação de maiúsculas e minúsculas ou a necessidade de ignorar tipos de caracteres.
O .NET usa três formas distintas de classificação: classificação por palavra, classificação por cadeia de caracteres e classificação ordinal. A classificação do Word realiza uma comparação de cadeia de caracteres sensível à cultura. Alguns caracteres não alfanuméricos podem ter pesos especiais atribuídos a eles. Por exemplo, o hífen ("-") pode ter um peso muito pequeno atribuído a ele para que "coop" e "co-op" apareçam um ao lado do outro em uma lista ordenada. A classificação de cadeias de caracteres é semelhante à classificação de palavras, exceto pelo fato de não haver casos especiais. Portanto, todos os símbolos não alfanuméricos vêm antes de todos os caracteres alfanuméricos. A classificação ordinal compara as cadeias de caracteres com base nos valores Unicode de cada elemento da cadeia de caracteres. Para obter um conjunto de arquivos de texto que podem ser baixados e que contêm informações sobre os pesos dos caracteres usados em operações de classificação e comparação para sistemas operacionais Windows, confira Classificação de Tabelas de Pesos. Para obter a tabela de pesos de classificação para Linux e macOS, confira Tabela de Elementos de Ordenação Unicode Padrão. A versão específica da tabela de peso de classificação do Linux e macOS depende da versão das bibliotecas de Componentes internacionais para Unicode instaladas no sistema. Para obter informações sobre versões de ICU e as versões Unicode que elas implementam, veja Baixar ICU.
O valor StringSort
só pode ser usado com CompareInfo.Compare e CompareInfo.GetSortKey. ArgumentException será lançado se o valor StringSort for usado com CompareInfo.IsPrefix, CompareInfo.IsSuffix, CompareInfo.IndexOf ou CompareInfo.LastIndexOf.
Observação
Quando possível, você deve usar métodos de comparação de cadeia de caracteres que aceitem um valor CompareOptions para especificar o tipo de comparação esperado. Como regra geral, as comparações voltadas para o usuário são mais bem atendidas pelo uso de opções linguísticas (usando a cultura atual), enquanto as comparações de segurança devem especificar Ordinal
ou OrdinalIgnoreCase
.
Classificações sensíveis à cultura
Observação
.NET Core em execução somente nos sistemas Linux e macOS: o comportamento da ordenação das culturas C e Posix é sempre sensível a maiúsculas e minúsculas porque essas culturas não usam a ordem da Ordenação Unicode esperada. Recomendamos usar uma cultura diferente de C ou Posix para executar operações de classificação que diferenciam culturas e maiúsculas de minúsculas.