Partilhar via


Executar operações de cadeia de caracteres que não diferenciam a cultura

As operações de cadeia de caracteres sensíveis à cultura são vantajosas se você estiver criando aplicativos projetados para exibir resultados aos usuários por cultura. Por padrão, os métodos sensíveis à cultura obtêm a cultura a ser usada da CurrentCulture propriedade para o thread atual.

Às vezes, as operações com sequências de caracteres sensíveis à cultura não são o comportamento desejado. O uso de operações sensíveis à cultura quando os resultados devem ser independentes da cultura pode fazer com que o código do aplicativo falhe em culturas com mapeamentos de casos personalizados e regras de classificação. Para obter um exemplo, consulte a seção Comparações de cadeia de caracteres que usam a cultura atual em Práticas recomendadas para uso de cadeias de caracteres.

Se as operações de cadeia de caracteres devem ser sensíveis ou insensíveis à cultura depende de como a sua aplicação utiliza os resultados. As operações de cadeia de caracteres que exibem resultados para o usuário normalmente devem ser sensíveis à cultura. Por exemplo, se um aplicativo exibir uma lista classificada de cadeias de caracteres localizadas em uma caixa de listagem, o aplicativo deverá executar uma classificação sensível à cultura.

Os resultados de operações de string usadas internamente devem normalmente ser insensíveis à cultura. Em geral, se o aplicativo estiver trabalhando com nomes de arquivo, formatos de persistência ou informações simbólicas que não são exibidas para o usuário, os resultados das operações de cadeia de caracteres não devem variar de acordo com a cultura. Por exemplo, se um aplicativo comparar uma cadeia de caracteres para determinar se ela é uma marca XML reconhecida, a comparação não deverá ser sensível à cultura. Além disso, se uma decisão de segurança for baseada no resultado de uma comparação de cadeia de caracteres ou operação de alteração de caso, a operação deve ser insensível à cultura para garantir que o resultado não seja afetado pelo valor de CurrentCulture.

A maioria dos métodos .NET que por padrão executam operações de strings sensíveis à cultura também oferecem uma sobrecarga que permite garantir resultados insensíveis à cultura. Essas sobrecargas que usam um CultureInfo argumento permitem eliminar variações culturais em mapeamentos de casos e regras de classificação. Para operações de cadeia de caracteres que não diferenciam cultura, especifique a cultura como CultureInfo.InvariantCulture.

Nesta secção

Os artigos desta seção demonstram como executar operações de strings insensíveis à cultura usando métodos .NET que são sensíveis à cultura por padrão.

Executar comparações de texto insensíveis à cultura
Descreve como usar os métodos String.Compare e String.CompareTo para executar comparações de cadeia de caracteres insensíveis à cultura.

Realizando alterações de maiúsculas e minúsculas sem sensibilidade cultural
Descreve como usar os métodos String.ToUpper, String.ToLower, Char.ToUpper e Char.ToLower para executar alterações de maiúsculas e minúsculas que não diferenciam cultura.

Executando operações de cadeia de caracteres insensíveis à cultura em coleções
Descreve como usar a classe CaseInsensitiveComparer, CaseInsensitiveHashCodeProvider, SortedList e ArrayList.Sort para executar operações que não diferenciam a cultura em coleções.

Executando operações de strings sem distinção cultural em matrizes
Descreve como usar os métodos Array.Sort e Array.BinarySearch para executar operações insensíveis à cultura em matrizes.

Ver também