Nota
O acesso a esta página requer autorização. Podes tentar iniciar sessão ou mudar de diretório.
O acesso a esta página requer autorização. Podes tentar mudar de diretório.
Por padrão, o método String.Compare executa comparações sensíveis às maiúsculas/minúsculas e à cultura. Esse método também inclui várias sobrecargas que fornecem um parâmetro culture que permite especificar a cultura a ser usada e um parâmetro comparisonType que permite especificar as regras de comparação a serem usadas. Chamar esses métodos em vez do sobrecarregamento padrão remove qualquer ambiguidade sobre as regras usadas numa chamada específica de método e deixa claro se uma comparação específica é sensível à cultura ou insensível à cultura.
Observação
Ambas as sobrecargas do método String.CompareTo realizam comparações sensíveis à cultura e às maiúsculas e minúsculas; Não é possível usar esse método para executar comparações que não diferenciam a cultura. Para maior clareza do código, recomendamos que você use o método String.Compare em vez disso.
Para operações sensíveis à cultura, especifique o valor de enumeração StringComparison.CurrentCulture ou StringComparison.CurrentCultureIgnoreCase como o parâmetro comparisonType. Se você quiser executar uma comparação sensível à cultura usando uma cultura designada diferente da cultura atual, especifique o objeto CultureInfo que representa essa cultura como o parâmetro culture.
As comparações de cadeia de caracteres insensíveis à cultura suportadas pelo método String.Compare são linguísticas (baseadas nas convenções de classificação da cultura invariante) ou não linguísticas (baseadas no valor ordinal dos caracteres na cadeia de caracteres). A maioria das comparações de cordas insensíveis à cultura são não-linguísticas. Para essas comparações, especifique o valor de enumeração StringComparison.Ordinal ou StringComparison.OrdinalIgnoreCase como o parâmetro comparisonType. Por exemplo, se uma decisão de segurança (como uma comparação de nome de usuário ou senha) for baseada no resultado de uma comparação de cadeia de caracteres, a operação deve ser insensível à cultura e não linguística para garantir que o resultado não seja afetado pelas convenções de uma cultura ou idioma específico.
Use a comparação de cadeias linguísticas insensíveis à cultura se quiser lidar com cadeias de caracteres linguisticamente relevantes de várias culturas de forma consistente. Por exemplo, se seu aplicativo exibir palavras que usam vários conjuntos de caracteres em uma caixa de listagem, talvez você queira exibir palavras na mesma ordem, independentemente da cultura atual. Para comparações linguísticas insensíveis à cultura, o .NET define uma cultura invariante baseada nas convenções linguísticas do inglês. Para realizar uma comparação linguística insensível à cultura, especifique StringComparison.InvariantCulture ou StringComparison.InvariantCultureIgnoreCase como o parâmetro comparisonType.
O exemplo seguinte realiza duas comparações de cadeias de caracteres não linguísticas e independentes da cultura. A primeira diferencia maiúsculas de minúsculas, mas a segunda não.
using System;
public class CompareSample
{
public static void Main()
{
string string1 = "file";
string string2 = "FILE";
int compareResult = 0;
compareResult = String.Compare(string1, string2,
StringComparison.Ordinal);
Console.WriteLine($"{StringComparison.Ordinal} comparison of '{string1}' and '{string2}': {compareResult}");
compareResult = String.Compare(string1, string2,
StringComparison.OrdinalIgnoreCase);
Console.WriteLine($"{StringComparison.OrdinalIgnoreCase} comparison of '{string1}' and '{string2}': {compareResult}");
}
}
// The example displays the following output:
// Ordinal comparison of 'file' and 'FILE': 32
// OrdinalIgnoreCase comparison of 'file' and 'FILE': 0
Public Class CompareSample
Public Shared Sub Main()
Dim string1 As String = "file"
Dim string2 As String = "FILE"
Dim compareResult As Integer
compareResult = String.Compare(string1, string2, _
StringComparison.Ordinal)
Console.WriteLine("{0} comparison of '{1}' and '{2}': {3}",
StringComparison.Ordinal, string1, string2,
compareResult)
compareResult = String.Compare(string1, string2,
StringComparison.OrdinalIgnoreCase)
Console.WriteLine("{0} comparison of '{1}' and '{2}': {3}",
StringComparison.OrdinalIgnoreCase, string1, string2,
compareResult)
End Sub
End Class
' The example displays the following output:
' Ordinal comparison of 'file' and 'FILE': 32
' OrdinalIgnoreCase comparison of 'file' and 'FILE': 0
Você pode baixar as Tabelas de Peso de Classificação, que são um conjunto de arquivos de texto contendo informações sobre os pesos dos caracteres usados em operações de classificação e comparação para sistemas operativos Windows, e a Tabela Padrão de Elementos de Agrupamento Unicode, a tabela de peso de classificação para Linux e macOS.