Ler em inglês

Partilhar via


StringComparer Classe

Definição

Representa uma operação de comparação de cadeia de caracteres que usa regras de comparação ordinal ou com base em cultura e caso específico.

public abstract class StringComparer : System.Collections.Generic.IComparer<string>, System.Collections.Generic.IEqualityComparer<string>, System.Collections.IComparer, System.Collections.IEqualityComparer
[System.Runtime.InteropServices.ComVisible(true)]
[System.Serializable]
public abstract class StringComparer : System.Collections.Generic.IComparer<string>, System.Collections.Generic.IEqualityComparer<string>, System.Collections.IComparer, System.Collections.IEqualityComparer
Herança
StringComparer
Atributos
Implementações

Exemplos

O exemplo a seguir demonstra as propriedades e o Create método da StringComparer classe . O exemplo ilustra como objetos StringComparer diferentes classificam três versões da letra I em Latin.

// This example demonstrates members of the 
// System.StringComparer class.

using System;
using System.Collections;
using System.Collections.Generic;
using System.Globalization;
using System.Threading;

class Sample 
{
    public static void Main() 
    {
        // Create a list of string.
        List<string> list = new List<string>();

        // Get the tr-TR (Turkish-Turkey) culture.
        CultureInfo turkish = new CultureInfo("tr-TR");

        // Get the culture that is associated with the current thread.
        CultureInfo thisCulture = Thread.CurrentThread.CurrentCulture;

        // Get the standard StringComparers.
        StringComparer invCmp =   StringComparer.InvariantCulture;
        StringComparer invICCmp = StringComparer.InvariantCultureIgnoreCase;
        StringComparer currCmp = StringComparer.CurrentCulture;
        StringComparer currICCmp = StringComparer.CurrentCultureIgnoreCase;
        StringComparer ordCmp = StringComparer.Ordinal;
        StringComparer ordICCmp = StringComparer.OrdinalIgnoreCase;

        // Create a StringComparer that uses the Turkish culture and ignores case.
        StringComparer turkICComp = StringComparer.Create(turkish, true);

        // Define three strings consisting of different versions of the letter I.
        // LATIN CAPITAL LETTER I (U+0049)
        string capitalLetterI = "I";  

        // LATIN SMALL LETTER I (U+0069)
        string smallLetterI   = "i";

        // LATIN SMALL LETTER DOTLESS I (U+0131)
        string smallLetterDotlessI = "\u0131";

        // Add the three strings to the list.
        list.Add(capitalLetterI);
        list.Add(smallLetterI);
        list.Add(smallLetterDotlessI);

        // Display the original list order.
        Display(list, "The original order of the list entries...");

        // Sort the list using the invariant culture.
        list.Sort(invCmp);
        Display(list, "Invariant culture...");
        list.Sort(invICCmp);
        Display(list, "Invariant culture, ignore case...");

        // Sort the list using the current culture.
        Console.WriteLine("The current culture is \"{0}\".", thisCulture.Name);
        list.Sort(currCmp);
        Display(list, "Current culture...");
        list.Sort(currICCmp);
        Display(list, "Current culture, ignore case...");

        // Sort the list using the ordinal value of the character code points.
        list.Sort(ordCmp);
        Display(list, "Ordinal...");
        list.Sort(ordICCmp);
        Display(list, "Ordinal, ignore case...");

        // Sort the list using the Turkish culture, which treats LATIN SMALL LETTER 
        // DOTLESS I differently than LATIN SMALL LETTER I.
        list.Sort(turkICComp);
        Display(list, "Turkish culture, ignore case...");
    }

    public static void Display(List<string> lst, string title)
    {
        Char c;
        int  codePoint;
        Console.WriteLine(title);
        foreach (string s in lst)
        {
            c = s[0];
            codePoint = Convert.ToInt32(c);
            Console.WriteLine("0x{0:x}", codePoint); 
        }
        Console.WriteLine();
    }
}
/*
This code example produces the following results:

The original order of the list entries...
0x49
0x69
0x131

Invariant culture...
0x69
0x49
0x131

Invariant culture, ignore case...
0x49
0x69
0x131

The current culture is "en-US".
Current culture...
0x69
0x49
0x131

Current culture, ignore case...
0x49
0x69
0x131

Ordinal...
0x49
0x69
0x131

Ordinal, ignore case...
0x69
0x49
0x131

Turkish culture, ignore case...
0x131
0x49
0x69

*/

Comentários

Para obter mais informações sobre essa API, consulte Comentários da API complementar para StringComparer.

Construtores

StringComparer()

Inicializa uma nova instância da classe StringComparer.

Propriedades

CurrentCulture

Obtém um objeto StringComparer que executa uma comparação de cadeia de caracteres que diferencia maiúsculas de minúsculas usando as regras de comparação de palavras da cultura atual.

CurrentCultureIgnoreCase

Obtém um objeto StringComparer que executa comparações de cadeia de caracteres que não diferenciam maiúsculas de minúsculas, usando as regras de comparação de palavras da cultura atual.

InvariantCulture

Obtém um objeto StringComparer que executa uma comparação de cadeia de caracteres que diferencia maiúsculas de minúsculas usando as regras de comparação de palavras da cultura invariável.

InvariantCultureIgnoreCase

Obtém um objeto StringComparer que executa uma comparação de cadeia de caracteres que não diferencia maiúsculas de minúsculas usando as regras de comparação de palavras da cultura invariável.

Ordinal

Obtém um objeto StringComparer que executa uma comparação de cadeia de caracteres ordinais que diferencia maiúsculas de minúsculas.

OrdinalIgnoreCase

Obtém um objeto StringComparer que executa uma comparação de cadeia de caracteres ordinais que não diferencia maiúsculas de minúsculas.

Métodos

Compare(Object, Object)

Quando substituído em uma classe derivada, compara dois objetos e retorna uma indicação de sua ordem de classificação relativa.

Compare(String, String)

Quando substituído em uma classe derivada, compara duas cadeias de caracteres e retorna uma indicação de sua ordem de classificação relativa.

Create(CultureInfo, Boolean)

Cria um objeto StringComparer que compara cadeias de caracteres de acordo com as regras de uma cultura especificada.

Create(CultureInfo, CompareOptions)

Cria um objeto StringComparer que compara cadeias de caracteres de acordo com as regras de uma cultura especificada e as opções de cadeia de caracteres.

Equals(Object, Object)

Quando substituído em uma classe derivada, indica se dois objetos são iguais.

Equals(Object)

Determina se o objeto especificado é igual ao objeto atual.

(Herdado de Object)
Equals(String, String)

Quando substituído em uma classe derivada, indica se duas cadeias de caracteres são iguais.

FromComparison(StringComparison)

Converte a instância de StringComparison especificada em uma instância de StringComparer.

GetHashCode()

Serve como a função de hash padrão.

(Herdado de Object)
GetHashCode(Object)

Quando substituído em uma classe derivada, obtém o código hash para o objeto especificado.

GetHashCode(String)

Quando substituído em uma classe derivada, obtém o código hash para a cadeia de caracteres especificada.

GetType()

Obtém o Type da instância atual.

(Herdado de Object)
IsWellKnownCultureAwareComparer(IEqualityComparer<String>, CompareInfo, CompareOptions)

Determina se o especificado IEqualityComparer<T> é um comparador de cadeia de caracteres com reconhecimento de cultura conhecido.

IsWellKnownOrdinalComparer(IEqualityComparer<String>, Boolean)

Determina se o especificado IEqualityComparer<T> é um comparador de cadeia de caracteres ordinal conhecido.

MemberwiseClone()

Cria uma cópia superficial do Object atual.

(Herdado de Object)
ToString()

Retorna uma cadeia de caracteres que representa o objeto atual.

(Herdado de Object)

Implantações explícitas de interface

IComparer.Compare(Object, Object)

Compara dois objetos e retorna um valor que indica se um é menor, igual ou maior do que o outro.

IEqualityComparer.Equals(Object, Object)

Determina se os objetos especificados são iguais.

IEqualityComparer.GetHashCode(Object)

Retorna um código hash para o objeto especificado.

Aplica-se a

Produto Versões
.NET Core 1.0, Core 1.1, Core 2.0, Core 2.1, Core 2.2, Core 3.0, Core 3.1, 5, 6, 7, 8, 9
.NET Framework 2.0, 3.0, 3.5, 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1
.NET Standard 1.0, 1.1, 1.2, 1.3, 1.4, 1.5, 1.6, 2.0, 2.1
UWP 10.0

Confira também