Executar operações de cadeia de caracteres que não levam em conta a cultura

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

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

A forma como o aplicativo usa os resultados determina se as operações de cadeia de caracteres devem ser sensíveis à cultura ou insensíveis à cultura. Operações de cadeias de caracteres que exibem resultados para o usuário devem normalmente ser sensíveis à cultura. Por exemplo, se um aplicativo exibe uma lista classificada das cadeias de caracteres encontradas em uma caixa de listagem, o aplicativo deve executar uma classificação sensível à cultura.

Os resultados das operações de cadeia de caracteres usados internamente devem, de forma geral, ser insensíveis à cultura. Geralmente, se o aplicativo trabalha com nomes de arquivos, 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 compara uma cadeia de caracteres para determinar se ela é uma marca XML reconhecida, a comparação não deve ser sensível à cultura. Além disso, se uma decisão de segurança é baseada no resultado de uma operação de comparação de cadeias de caracteres ou de modificação de maiúsculas/minúsculas, a operação deve ser sensível à cultura para garantir que o resultado não seja afetado pelo valor de CurrentCulture.

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

Nesta seção

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

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

Executando alterações de maiúsculas e minúsculas que não levam em conta a cultura
Descreve como usar os métodos String.ToUpper, String.ToLower, Char.ToUpper e Char.ToLower para executar alterações na capitalização insensíveis à cultura.

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

Executando operações de cadeia de caracteres que não levam em conta a cultura em matrizes
Descreve como usar os métodos Array.Sort e Array.BinarySearch para executar operações insensíveis à cultura em matrizes.

Confira também