Compartilhar via


Este artigo fornece comentários complementares à documentação de referência para esta API.

As convenções para comparar e classificar dados variam de cultura para cultura. Por exemplo, a ordem de classificação pode ser baseada em fonética ou na representação visual de caracteres. Nos idiomas do leste asiático, os caracteres são ordenados pelo traço e pelo radical dos ideogramas. A classificação também depende da ordem que as línguas e culturas utilizam para o alfabeto. Por exemplo, a língua dinamarquesa possui o caractere "Æ", que vem após a letra "Z" no alfabeto. Além disso, as comparações podem diferenciar ou não maiúsculas de minúsculas, e as regras de capitalização também podem variar de acordo com a cultura. A CompareInfo classe é responsável por manter esses dados de comparação de cadeia de caracteres sensíveis à cultura e executar operações de cadeia de caracteres sensíveis à cultura.

Normalmente, você não precisa instanciar um CompareInfo objeto diretamente, pois um é usado implicitamente por todas as operações de comparação de cadeia de caracteres não ordinais, incluindo chamadas para o String.Compare método. No entanto, se você quiser recuperar um CompareInfo objeto, poderá fazê-lo de uma destas maneiras:

Valores de pesquisa ignorados

Os conjuntos de caracteres incluem caracteres ignoráveis, que são caracteres que não são considerados ao executar uma comparação linguística ou sensível à cultura. Métodos de comparação como IndexOf e LastIndexOf não consideram esses caracteres quando executam uma comparação sensível à cultura. Os caracteres ignoráveis incluem:

  • String.Empty. Métodos de comparação sensíveis à cultura sempre encontrarão uma cadeia de caracteres vazia no início (índice zero) da cadeia de caracteres que está sendo pesquisada.

  • Um caractere ou sequência de caracteres composta por caracteres cujos pontos de código não são considerados na operação devido às opções de comparação. Em particular, as opções CompareOptions.IgnoreNonSpace e CompareOptions.IgnoreSymbols produzem pesquisas nas quais os símbolos e os caracteres de combinação sem espaçamento são ignorados.

  • Uma cadeia de caracteres com pontos de código que não têm nenhum significado linguístico. Por exemplo, um hífen condicional (U+00AD) é sempre ignorado em uma comparação de cadeia de caracteres sensível à cultura.

Considerações de segurança

Se uma decisão de segurança depender de uma comparação de cadeia de caracteres ou de uma alteração de caso, você deverá usar a InvariantCulture propriedade para garantir que o comportamento seja consistente, independentemente das configurações de cultura do sistema operacional.

Observação

Quando possível, você deve usar métodos de comparação de cadeia de caracteres que têm um parâmetro de tipo CompareOptions para especificar o tipo de comparação esperado. Como regra geral, use opções linguísticas (usando a cultura atual) para comparar cadeias de caracteres exibidas na interface do usuário e especificar Ordinal ou OrdinalIgnoreCase para comparações de segurança.