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