Compartilhar via


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 serã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 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 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 as Comparações de Cadeia de Caracteres que usam a seção Cultura Atual nas Práticas Recomendadas para Usar 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. 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 das operações de cadeia de caracteres usados internamente devem, de forma geral, 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 ao usuário, os resultados das operações de cadeia de caracteres não deverão 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 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 diferenciam cultura, especifique a cultura como CultureInfo.InvariantCulture.

Nesta seção

Os artigos nesta 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 cadeias de caracteres sensíveis à cultura
Descreve como usar os métodos String.Compare e String.CompareTo para executar comparações de cadeias de caracteres insensíveis à cultura.

Executar 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.

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

Executar 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.

Consulte também