Compartilhar via


Executar a diferenciação de cultura comparações de string

Por padrão, a Compare método realiza sensíveis à cultura e caso-comparações confidenciais. No entanto, uma sobrecarga do String.comparar método é fornecido que permite que você especifique a cultura a ser usada ao fornecer um cultura parâmetro.Código do aplicativo deve demonstram claramente se um comparação de cadeia de caracteres se destina a ser sensíveis à cultura ou diferenciação de cultura.Para operações sensíveis à cultura, especifique o CultureInfo.CurrentCulture a propriedade sistema autônomo o cultura parâmetro.Para operações de diferenciação de cultura, especifique o CultureInfo.InvariantCulture a propriedade sistema autônomo o cultura parâmetro.

Se uma decisão de segurança for baseada no resultado de uma comparação de seqüências de caracteres, a operação deve ser diferenciação de cultura para garantir que o resultado não seja afetado pelo valor de CultureInfo.CurrentCulture.See Personalizado caso mapeamentos e regras de classificação para obter um exemplo que demonstra como sensíveis à cultura comparações de seqüência de caracteres pode produzir resultados divergente.

Sobrecargas do String.CompareTo método Execute sensíveis à cultura e caso-confidenciais comparações por padrão. No entanto, não há sobrecargas desse método são desde que permitem que você especificar uma comparação de diferenciação de cultura.Para maior clareza do código, é recomendável que você use o String.comparar método a especificação em vez disso,CultureInfo.CurrentCulture ou de operações sensíveis à culturaCultureInfo.InvariantCulture para operações de diferenciação de cultura.

Usando o método String.comparar

A linha de código a seguir demonstra como usar o String.comparar método para executar um caso-comparação confidencial e sensíveis à cultura de string1 e string2. CultureInfo.CurrentCulture é passado sistema autônomo o cultura parâmetro, indicando que o caso mapeamentos e regras de classificação para o CurrentCulture será usado.

Dim compareResult As Integer = String.Compare(string1, string2, False, CultureInfo.CurrentCulture)
int compareResult = String.Compare(string1, string2, false, CultureInfo.CurrentCulture);

Para obter um exemplo de código completo que demonstra como usar o String.comparar método para executar comparações sensíveis à cultura, consulte Comparando e classificando dados para uma cultura específica.

Para fazer esta operação com diferenciação de cultura, você deve especificar CultureInfo.InvariantCulture sistema autônomo the cultura parâmetro.Isso é demonstrado na seguinte linha de exemplo de código.

Dim compareResult As Integer = String.Compare(string1, string2, False, CultureInfo.InvariantCulture)
int compareResult = String.Compare(string1, string2, false, CultureInfo.InvariantCulture);

O exemplo de código a seguir demonstra como realizar uma comparação de cadeia de caracteres de diferenciação de cultura usando a linha de código anterior.

Imports System
Imports System.Globalization

Public Class CompareSample
    Public Shared Sub Main()
        Dim string1 As String = "file"
        Dim string2 As String = "FILE"
        
        Dim compareResult As Integer = String.Compare(string1, string2, _
            False, CultureInfo.InvariantCulture)   
        Console.WriteLine("A case-insensitive comparison of {0} and {1} is _
            {2}", string1, string2, compareResult)
    End Sub
End Class
using System;
using System.Globalization;

public class CompareSample
{
    public static void Main()
    {
        String string1 = "file";
        String string2 = "FILE";

        int compareResult = String.Compare(string1, string2, false, 
        CultureInfo.InvariantCulture);
        Console.WriteLine("A case-insensitive comparison of {0} and {1} is 
            {2}", string1, string2, compareResult);
    }
}

Usando o método String.CompareTo

O exemplo a seguir utiliza o String.CompareTo método para executar uma comparação de string1 e string2. Por padrão, a comparação é sensível à cultura e caso - confidenciais.

Dim compareResult As Integer = string1.CompareTo(string2)
int compareResult = string1.CompareTo(string2);

Porque um cultura parâmetro não é passado explicitamente, o objetivo do exemplo acima é ambíguo.Seu aplicativo deve substituir o String.CompareTo método com o String.comparar método para torná-lo desmarcar que o aplicativo é sensível à cultura ou diferenciação de cultura.Se a intenção é realizar uma comparação diferenciando diferenciar maiúsculas de minúsculas e sensíveis à cultura de string1 e string2, o aplicativo deve passar CultureInfo.CurrentCulture sistema autônomo the cultura parâmetro.Isso faz com que o caso mapeamentos e regras de classificação para o CurrentCulture para ser usado, sistema autônomo demonstrado no exemplo a seguir.

Dim compareResult As Integer = String.Compare(string1, string2, False, CultureInfo.CurrentCulture)
int compareResult = String.Compare(string1, string2, false, CultureInfo.CurrentCulture);

Se a intenção é realizar um caso-comparação confidencial e diferenciação de cultura de string1 e string2, o aplicativo deve passar CultureInfo.InvariantCulture sistema autônomo the cultura parâmetro.Isso faz com que sistema autônomo mapeamentos de maiúsculas e regras de classificação para o InvariantCulture para ser usado, sistema autônomo demonstrado no exemplo a seguir.

Dim compareResult As Integer = String.Compare(string1, string2, False, CultureInfo.InvariantCulture)
int compareResult = String.Compare(string1, string2, false, CultureInfo.InvariantCulture);

Para obter um exemplo de código completo que demonstra como usar o String.comparar método para obter resultados de diferenciação de cultura, consulte Usando o método String.comparar.

Consulte também

Conceitos

Comparando e classificando dados para uma cultura específica

Referência

String.Compare

String.CompareTo

Outros recursos

Executando operações diferenciação de cultura de string