Compartilhar via


CompareOptions enumeração

Este artigo fornece comentários complementares à documentação de referência para esta 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 maneiras distintas de classificação: classificação de palavras, classificação de cadeia de caracteres e classificação ordinal. A classificação do Word realiza uma comparação de cadeia de caracteres sensível à cultura. Determinados caracteres não numé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 classificada. O ordenamento de cadeias de caracteres é semelhante ao ordenamento de palavras, exceto que não há casos especiais. Portanto, todos os símbolos não numéricos vêm antes de todos os caracteres alfanuméricos. A classificação ordinal compara cadeias de caracteres com base nos valores Unicode de cada elemento da cadeia de caracteres. Para obter um conjunto baixável de arquivos de texto que contêm informações sobre os pesos de caractere usados em operações de classificação e comparação para sistemas operacionais Windows, veja Tabelas de Pesos de Classificação. Para a tabela de peso de classificação para Linux e macOS, consulte a tabela de elementos de ordenação Unicode padrão. A versão específica da tabela de peso de classificação no Linux e no macOS depende da versão das bibliotecas de Componentes Internacionais para Unicode instaladas no sistema. Para obter informações sobre as versões da UTI e as versões unicode que elas implementam, consulte Baixar a UTI.

O StringSort valor 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 aceitam um CompareOptions valor para especificar o tipo de comparação esperada. Como regra geral, as comparações voltadas para o usuário são melhor 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.