Lire en anglais

Partager via


StringComparer Classe

Définition

Représente une opération de comparaison de chaînes qui utilise des règles de tri spécifiques basées sur la casse et la culture ou des règles de comparaison 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
Héritage
StringComparer
Attributs
Implémente

Exemples

L’exemple suivant illustre les propriétés et la Create méthode de la StringComparer classe . L’exemple montre comment différents StringComparer objets trient trois versions de la lettre latine 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

*/

Remarques

Pour plus d’informations sur cette API, consultez Remarques supplémentaires sur l’API pour StringComparer.

Constructeurs

StringComparer()

Initialise une nouvelle instance de la classe StringComparer.

Propriétés

CurrentCulture

Obtient un objet StringComparer qui exécute une comparaison de chaînes respectant la casse à l'aide des règles de comparaison de mots de la culture actuelle.

CurrentCultureIgnoreCase

Obtient un objet StringComparer qui effectue des comparaisons de chaînes ne respectant pas la casse à l'aide des règles de comparaison de mots de la culture actuelle.

InvariantCulture

Obtient un objet StringComparer qui exécute une comparaison de chaînes respectant la casse à l'aide des règles de comparaison de mots de la culture indifférente.

InvariantCultureIgnoreCase

Obtient un objet StringComparer qui exécute une comparaison de chaînes ne respectant pas la casse à l'aide des règles de comparaison de mots de la culture indifférente.

Ordinal

Obtient un objet StringComparer qui effectue une comparaison de chaînes ordinale respectant la casse.

OrdinalIgnoreCase

Obtient un objet StringComparer qui effectue une comparaison de chaînes ordinale ne respectant pas la casse.

Méthodes

Compare(Object, Object)

En cas de substitution dans une classe dérivée, compare deux objets et retourne une indication de leur ordre de tri relatif.

Compare(String, String)

En cas de substitution dans une classe dérivée, compare deux chaînes et retourne une indication de leur ordre de tri relatif.

Create(CultureInfo, Boolean)

Crée un objet StringComparer qui compare des chaînes d'après les règles d'une culture spécifiée.

Create(CultureInfo, CompareOptions)

Crée un objet StringComparer qui compare des chaînes d’après les règles d’une culture et d’options de chaîne spécifiées.

Equals(Object, Object)

En cas de substitution dans une classe dérivée, indique si deux objets sont égaux.

Equals(Object)

Détermine si l'objet spécifié est égal à l'objet actuel.

(Hérité de Object)
Equals(String, String)

En cas de substitution dans une classe dérivée, indique si deux chaînes sont égales.

FromComparison(StringComparison)

Convertit l’instance StringComparison spécifiée en une instance StringComparer.

GetHashCode()

Fait office de fonction de hachage par défaut.

(Hérité de Object)
GetHashCode(Object)

En cas de substitution dans une classe dérivée, obtient le code de hachage pour l'objet spécifié.

GetHashCode(String)

En cas de substitution dans une classe dérivée, obtient le code de hachage pour la chaîne spécifiée.

GetType()

Obtient le Type de l'instance actuelle.

(Hérité de Object)
IsWellKnownCultureAwareComparer(IEqualityComparer<String>, CompareInfo, CompareOptions)

Détermine si le spécifié IEqualityComparer<T> est un comparateur de chaînes bien connu prenant en compte la culture.

IsWellKnownOrdinalComparer(IEqualityComparer<String>, Boolean)

Détermine si le spécifié IEqualityComparer<T> est un comparateur de chaînes ordinales bien connu.

MemberwiseClone()

Crée une copie superficielle du Object actuel.

(Hérité de Object)
ToString()

Retourne une chaîne qui représente l'objet actuel.

(Hérité de Object)

Implémentations d’interfaces explicites

IComparer.Compare(Object, Object)

Compare deux objets et retourne une valeur indiquant si le premier est inférieur, égal ou supérieur au second.

IEqualityComparer.Equals(Object, Object)

Détermine si les objets spécifiés sont égaux.

IEqualityComparer.GetHashCode(Object)

Retourne un code de hachage pour l'objet spécifié.

S’applique à

Produit Versions
.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

Voir aussi