Leggere in inglese

Condividi tramite


StringComparer Classe

Definizione

Rappresenta un'operazione di confronto tra stringhe che usa regole specifiche di confronto basate sull'uso di maiuscole e minuscole e specifiche delle impostazioni cultura o per ordinale.

C#
public abstract class StringComparer : System.Collections.Generic.IComparer<string>, System.Collections.Generic.IEqualityComparer<string>, System.Collections.IComparer, System.Collections.IEqualityComparer
C#
[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
Ereditarietà
StringComparer
Attributi
Implementazioni

Esempio

Nell'esempio seguente vengono illustrate le proprietà e il Create metodo della StringComparer classe . Nell'esempio viene illustrato il modo in cui oggetti diversi StringComparer ordinano tre versioni della lettera latina I.

C#
// 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

*/

Commenti

Per altre informazioni su questa API, vedere Note sulle API supplementari per StringComparer.

Costruttori

StringComparer()

Inizializza una nuova istanza della classe StringComparer.

Proprietà

CurrentCulture

Ottiene un oggetto StringComparer che esegue un confronto tra stringhe con distinzione tra maiuscole e minuscole usando le regole di confronto per parola delle impostazioni cultura correnti.

CurrentCultureIgnoreCase

Ottiene un oggetto StringComparer che esegue un confronto tra stringhe con distinzione tra maiuscole e minuscole usando le regole di confronto per parola delle impostazioni cultura correnti.

InvariantCulture

Ottiene un oggetto StringComparer che esegue un confronto tra stringhe con distinzione tra maiuscole e minuscole utilizzando le regole di confronto per parola delle impostazioni cultura invarianti.

InvariantCultureIgnoreCase

Ottiene un oggetto StringComparer che esegue un confronto tra stringhe senza distinzione tra maiuscole e minuscole utilizzando le regole di confronto per parola delle impostazioni cultura invarianti.

Ordinal

Ottiene un oggetto StringComparer che esegue un confronto ordinale tra stringhe con distinzione tra maiuscole e minuscole.

OrdinalIgnoreCase

Ottiene un oggetto StringComparer che esegue un confronto ordinale tra stringhe senza distinzione tra maiuscole e minuscole.

Metodi

Compare(Object, Object)

Quando sottoposto a override in una classe derivata, confronta due oggetti e restituisce un'indicazione del relativo ordinamento.

Compare(String, String)

Quando sottoposto a override in una classe derivata, confronta due stringhe e restituisce un'indicazione del relativo ordinamento.

Create(CultureInfo, Boolean)

Crea un oggetto StringComparer che confronta le stringhe secondo le regole delle impostazioni cultura specificate.

Create(CultureInfo, CompareOptions)

Crea un oggetto StringComparer che confronta le stringhe secondo le regole delle impostazioni cultura specificate e le opzioni per le stringhe.

Equals(Object, Object)

Quando sottoposto a override in una classe derivata, indica se due oggetti sono uguali.

Equals(Object)

Determina se l'oggetto specificato è uguale all'oggetto corrente.

(Ereditato da Object)
Equals(String, String)

Quando sottoposto a override in una classe derivata, indica se due stringhe sono uguali.

FromComparison(StringComparison)

Converte l'istanza di StringComparison specificata in un'istanza di StringComparer.

GetHashCode()

Funge da funzione hash predefinita.

(Ereditato da Object)
GetHashCode(Object)

Quando sottoposto a override in una classe derivata, ottiene il codice hash per l'oggetto specificato.

GetHashCode(String)

Quando sottoposto a override in una classe derivata, ottiene il codice hash per la stringa specificata.

GetType()

Ottiene l'oggetto Type dell'istanza corrente.

(Ereditato da Object)
IsWellKnownCultureAwareComparer(IEqualityComparer<String>, CompareInfo, CompareOptions)

Determina se l'oggetto specificato IEqualityComparer<T> è un operatore di confronto di stringhe con riconoscimento delle impostazioni cultura noto.

IsWellKnownOrdinalComparer(IEqualityComparer<String>, Boolean)

Determina se l'oggetto specificato IEqualityComparer<T> è un operatore di confronto di stringhe ordinali noto.

MemberwiseClone()

Crea una copia superficiale dell'oggetto Object corrente.

(Ereditato da Object)
ToString()

Restituisce una stringa che rappresenta l'oggetto corrente.

(Ereditato da Object)

Implementazioni dell'interfaccia esplicita

IComparer.Compare(Object, Object)

Confronta due oggetti e restituisce un valore indicante se uno è minore, uguale o maggiore dell'altro.

IEqualityComparer.Equals(Object, Object)

Determina se gli oggetti specificati sono uguali.

IEqualityComparer.GetHashCode(Object)

Viene restituito un codice hash per l'oggetto specificato.

Si applica a

Prodotto Versioni
.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, 10
.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

Vedi anche