CompareInfo Classe

Définition

Implémente un ensemble de méthodes applicables aux comparaisons de chaînes sensible à la culture.

public ref class CompareInfo
public ref class CompareInfo sealed : System::Runtime::Serialization::IDeserializationCallback
public ref class CompareInfo : System::Runtime::Serialization::IDeserializationCallback
public class CompareInfo
public sealed class CompareInfo : System.Runtime.Serialization.IDeserializationCallback
public class CompareInfo : System.Runtime.Serialization.IDeserializationCallback
[System.Serializable]
public class CompareInfo : System.Runtime.Serialization.IDeserializationCallback
[System.Serializable]
[System.Runtime.InteropServices.ComVisible(true)]
public class CompareInfo : System.Runtime.Serialization.IDeserializationCallback
type CompareInfo = class
type CompareInfo = class
    interface IDeserializationCallback
[<System.Serializable>]
type CompareInfo = class
    interface IDeserializationCallback
[<System.Serializable>]
[<System.Runtime.InteropServices.ComVisible(true)>]
type CompareInfo = class
    interface IDeserializationCallback
Public Class CompareInfo
Public NotInheritable Class CompareInfo
Implements IDeserializationCallback
Public Class CompareInfo
Implements IDeserializationCallback
Héritage
CompareInfo
Attributs
Implémente

Exemples

L’exemple suivant montre comment l' CompareInfo objet associé à un CultureInfo objet affecte la comparaison de chaînes.

using namespace System;
using namespace System::Text;
using namespace System::Globalization;

int main()
{
    array<String^>^ sign = gcnew array<String^> { "<", "=", ">" };

    // The code below demonstrates how strings compare
    // differently for different cultures.
    String^ s1 = "Coté"; 
    String^ s2 = "coté";
    String^ s3 = "côte";

    // Set sort order of strings for French in France.
    CompareInfo^ ci = (gcnew CultureInfo("fr-FR"))->CompareInfo;
    Console::WriteLine(L"The LCID for {0} is {1}.", ci->Name, ci->LCID);

    // Display the result using fr-FR Compare of Coté = coté.
    Console::WriteLine(L"fr-FR Compare: {0} {2} {1}",
        s1, s2, sign[ci->Compare(s1, s2, CompareOptions::IgnoreCase) + 1]);

    // Display the result using fr-FR Compare of coté > côte.
    Console::WriteLine(L"fr-FR Compare: {0} {2} {1}",
        s2, s3, sign[ci->Compare(s2, s3, CompareOptions::None) + 1]);

    // Set sort order of strings for Japanese as spoken in Japan.
    ci = (gcnew CultureInfo("ja-JP"))->CompareInfo;
    Console::WriteLine(L"The LCID for {0} is {1}.", ci->Name, ci->LCID);

    // Display the result using ja-JP Compare of coté < côte.
    Console::WriteLine("ja-JP Compare: {0} {2} {1}",
        s2, s3, sign[ci->Compare(s2, s3) + 1]);
}

// This code produces the following output.
//
// The LCID for fr-FR is 1036.
// fr-FR Compare: Coté = coté
// fr-FR Compare: coté > côte
// The LCID for ja-JP is 1041.
// ja-JP Compare: coté < côte
using System;
using System.Text;
using System.Globalization;

public sealed class App
{
    static void Main(string[] args)
    {
        String[] sign = new String[] { "<", "=", ">" };

        // The code below demonstrates how strings compare
        // differently for different cultures.
        String s1 = "Coté", s2 = "coté", s3 = "côte";

        // Set sort order of strings for French in France.
        CompareInfo ci = new CultureInfo("fr-FR").CompareInfo;
        Console.WriteLine("The LCID for {0} is {1}.", ci.Name, ci.LCID);

        // Display the result using fr-FR Compare of Coté = coté.  	
        Console.WriteLine("fr-FR Compare: {0} {2} {1}",
            s1, s2, sign[ci.Compare(s1, s2, CompareOptions.IgnoreCase) + 1]);

        // Display the result using fr-FR Compare of coté > côte.
        Console.WriteLine("fr-FR Compare: {0} {2} {1}",
            s2, s3, sign[ci.Compare(s2, s3, CompareOptions.None) + 1]);

        // Set sort order of strings for Japanese as spoken in Japan.
        ci = new CultureInfo("ja-JP").CompareInfo;
        Console.WriteLine("The LCID for {0} is {1}.", ci.Name, ci.LCID);

        // Display the result using ja-JP Compare of coté < côte.
        Console.WriteLine("ja-JP Compare: {0} {2} {1}",
            s2, s3, sign[ci.Compare(s2, s3) + 1]);
    }
}

// This code produces the following output.
//
// The LCID for fr-FR is 1036.
// fr-FR Compare: Coté = coté
// fr-FR Compare: coté > côte
// The LCID for ja-JP is 1041.
// ja-JP Compare: coté < côte
Imports System.Text
Imports System.Globalization

NotInheritable Public Class App
    Shared Sub Main(ByVal args() As String) 
        Dim sign() As String = {"<", "=", ">"}
        
        ' The code below demonstrates how strings compare 
        ' differently for different cultures.
        Dim s1 As String = "Coté"
        Dim s2 As String = "coté"
        Dim s3 As String = "côte"
        
        ' Set sort order of strings for French in France.
        Dim ci As CompareInfo = New CultureInfo("fr-FR").CompareInfo
        Console.WriteLine("The LCID for {0} is {1}.", ci.Name, ci.LCID)
        
        ' Display the result using fr-FR Compare of Coté = coté.  	
        Console.WriteLine("fr-FR Compare: {0} {2} {1}", _
                          s1, s2, sign((ci.Compare(s1, s2, CompareOptions.IgnoreCase) + 1)))
        
        ' Display the result using fr-FR Compare of coté > côte.
        Console.WriteLine("fr-FR Compare: {0} {2} {1}", _
                          s2, s3, sign((ci.Compare(s2, s3, CompareOptions.None) + 1)))
        
        ' Set sort order of strings for Japanese as spoken in Japan.
        ci = New CultureInfo("ja-JP").CompareInfo
        Console.WriteLine("The LCID for {0} is {1}.", ci.Name, ci.LCID)
        
        ' Display the result using ja-JP Compare of coté < côte. 
        Console.WriteLine("ja-JP Compare: {0} {2} {1}", _
                          s2, s3, sign((ci.Compare(s2, s3) + 1)))
    End Sub
End Class

' This code produces the following output.
' 
' The LCID for fr-FR is 1036.
' fr-FR Compare: Coté = coté
' fr-FR Compare: coté > côte
' The LCID for ja-JP is 1041.
' ja-JP Compare: coté < côte

Remarques

Les conventions de comparaison et de tri des données varient selon la culture et la culture. Par exemple, l’ordre de tri peut être basé sur des phonétiques ou sur la représentation visuelle des caractères. Dans les langues d'Asie orientale, les caractères sont classés en fonction du trait et de la clé des idéogrammes. Le tri peut aussi varier en fonction de l'ordre fondamental utilisé par la langue ou la culture pour l'alphabet. Par exemple, la langue danoise emploie un caractère "Æ" qu'elle place après "Z" dans l'alphabet. En outre, les comparaisons peuvent respecter la casse ou ne pas respecter la casse, et les règles de casse peuvent également différer selon la culture. La CompareInfo classe est responsable de la gestion de ces données de comparaison de chaînes dépendantes de la culture et pour l’exécution d’opérations de chaînes dépendantes de la culture.

En règle générale, il n’est pas nécessaire d’instancier CompareInfo directement un objet, car il est utilisé implicitement par toutes les opérations de comparaison de chaînes non ordinales, y compris les appels à la String.Compare méthode. Toutefois, si vous souhaitez récupérer un CompareInfo objet, vous pouvez le faire de l’une des façons suivantes :

Valeurs de recherche ignorées

Les jeux de caractères incluent les caractères ignorables, à savoir les caractères qui ne sont pas considérés lors de l'exécution d'une comparaison linguistique ou dépendante de la culture. Les méthodes de comparaison telles que IndexOf et LastIndexOf ne considèrent pas ces caractères lorsqu’elles effectuent une comparaison dépendante de la culture. Les caractères pouvant être ignorés sont les suivants :

  • String.Empty. Les méthodes de comparaison dépendantes de la culture trouveront toujours une chaîne vide au début (index zéro) de la chaîne recherchée.

  • Caractère ou chaîne constitué de caractères avec des points de code qui ne sont pas pris en compte dans l’opération en raison des options de comparaison, notamment les CompareOptions.IgnoreNonSpace CompareOptions.IgnoreSymbols options et produisent des recherches dans lesquelles les symboles et les caractères d’association sans espace sont ignorés.

  • Chaîne avec des points de code qui n’ont pas de signification linguistique. Par exemple, un trait d’union conditionnel (U + 00AD) est toujours ignoré dans une comparaison de chaînes dépendante de la culture.

Considérations relatives à la sécurité

Si une décision de sécurité dépend d’une comparaison de chaînes ou d’un changement de casse, vous devez utiliser la InvariantCulture propriété pour vous assurer que le comportement est cohérent, quels que soient les paramètres de culture du système d’exploitation.

Notes

Lorsque cela est possible, vous devez utiliser des méthodes de comparaison de chaînes qui ont un paramètre de type CompareOptions pour spécifier le type de comparaison attendu. En règle générale, utilisez les options linguistiques (à l’aide de la culture actuelle) pour comparer les chaînes affichées dans l’interface utilisateur et spécifiez Ordinal ou OrdinalIgnoreCase pour les comparaisons de sécurité.

Propriétés

LCID

Obtient l'identificateur de culture correctement formé pour le CompareInfo en cours.

Name

Obtient le nom de la culture utilisée pour trier des opérations par cet objet CompareInfo.

Version

Obtient des informations sur la version d'Unicode utilisée pour comparer et trier des chaînes.

Méthodes

Compare(ReadOnlySpan<Char>, ReadOnlySpan<Char>, CompareOptions)

Compare deux étendues de caractères en lecture seule.

Compare(String, Int32, Int32, String, Int32, Int32)

Compare la section d'une chaîne avec celle d'une autre chaîne.

Compare(String, Int32, Int32, String, Int32, Int32, CompareOptions)

Compare une section d'une chaîne avec une section d'une autre chaîne à l'aide de la valeur CompareOptions spécifiée.

Compare(String, Int32, String, Int32)

Compare la section finale d'une chaîne à la section finale d'une autre chaîne.

Compare(String, Int32, String, Int32, CompareOptions)

Compare la section finale d'une chaîne avec celle d'une autre chaîne à l'aide de la valeur CompareOptions spécifiée.

Compare(String, String)

Compare deux chaînes.

Compare(String, String, CompareOptions)

Compare deux chaînes à l'aide de la valeur CompareOptions spécifiée.

Equals(Object)

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

GetCompareInfo(Int32)

Initialise un nouvel objet CompareInfo associé à la culture avec l'identificateur spécifié.

GetCompareInfo(Int32, Assembly)

Initialise un nouvel objet CompareInfo associée à la culture spécifiée et qui utilise les méthodes de comparaison de chaînes du Assembly spécifié.

GetCompareInfo(String)

Initialise un nouvel objet CompareInfo associé à la culture avec le nom spécifié.

GetCompareInfo(String, Assembly)

Initialise un nouvel objet CompareInfo associée à la culture spécifiée et qui utilise les méthodes de comparaison de chaînes du Assembly spécifié.

GetHashCode()

Est utilisé comme fonction de hachage pour le CompareInfo en cours pour les algorithmes de hachage et les structures de données, par exemple une table de hachage.

GetHashCode(ReadOnlySpan<Char>, CompareOptions)

Obtient le code de hachage pour une étendue de caractères en fonction des options de comparaison spécifiées.

GetHashCode(String, CompareOptions)

Obtient le code de hachage pour une chaîne en fonction des options de comparaison spécifiées.

GetSortKey(ReadOnlySpan<Char>, Span<Byte>, CompareOptions)

Calcule une clé de tri pour l’entrée spécifiée.

GetSortKey(String)

Obtient la clé de tri pour la chaîne spécifiée.

GetSortKey(String, CompareOptions)

Instancie un objet SortKey pour la chaîne spécifiée à l'aide de la valeur CompareOptions spécifiée.

GetSortKeyLength(ReadOnlySpan<Char>, CompareOptions)

Obtient le nombre total d’octets de clé de tri qui seraient produits à partir de l’entrée spécifiée.

GetType()

Obtient le Type de l'instance actuelle.

(Hérité de Object)
IndexOf(ReadOnlySpan<Char>, ReadOnlySpan<Char>, CompareOptions)

Recherche la première occurrence d’une sous-chaîne dans l’étendue spécifiée de caractères en lecture seule.

IndexOf(ReadOnlySpan<Char>, ReadOnlySpan<Char>, CompareOptions, Int32)

Recherche la première occurrence d’une sous-chaîne dans une chaîne source.

IndexOf(ReadOnlySpan<Char>, Rune, CompareOptions)

Recherche la première occurrence d’un Rune dans l’étendue spécifiée de caractères en lecture seule.

IndexOf(String, Char)

Recherche le caractère spécifié et retourne l'index de base zéro de la première occurrence dans la chaîne source entière.

IndexOf(String, Char, CompareOptions)

Recherche le caractère spécifié et retourne l'index de base zéro de la première occurrence dans la chaîne source entière à l'aide de la valeur CompareOptions spécifiée.

IndexOf(String, Char, Int32)

Recherche le caractère spécifié et retourne l'index de base zéro de la première occurrence dans la section de la chaîne source comprise entre l'index spécifié et la fin de la chaîne.

IndexOf(String, Char, Int32, CompareOptions)

Recherche le caractère spécifié et retourne l'index de base zéro de la première occurrence trouvée dans la section de la chaîne source comprise entre l'index spécifié et la fin de la chaîne, à l'aide de la valeur CompareOptions.

IndexOf(String, Char, Int32, Int32)

Recherche le caractère spécifié et retourne l'index de base zéro de la première occurrence trouvée dans la section de la chaîne source commençant à l'index spécifié et contenant le nombre d'éléments spécifié.

IndexOf(String, Char, Int32, Int32, CompareOptions)

Recherche le caractère spécifié et retourne l'index de base zéro de la première occurrence trouvée dans la section de la chaîne source commençant à l'index spécifié et contenant le nombre d'éléments spécifié, à l'aide de la valeur CompareOptions spécifiée.

IndexOf(String, String)

Recherche la sous-chaîne spécifiée et retourne l'index de base zéro de la première occurrence trouvée dans la chaîne source entière.

IndexOf(String, String, CompareOptions)

Recherche la sous-chaîne spécifiée et retourne l'index de base zéro de la première occurrence trouvée dans la chaîne source entière, à l'aide de la valeur CompareOptions spécifiée.

IndexOf(String, String, Int32)

Recherche la sous-chaîne spécifiée et retourne l'index de base zéro de la première occurrence trouvée dans la section de la chaîne source comprise entre l'index spécifié et la fin de la chaîne.

IndexOf(String, String, Int32, CompareOptions)

Recherche la sous-chaîne spécifiée et retourne l'index de base zéro de la première occurrence trouvée dans la section de la chaîne source comprise entre l'index spécifié et la fin de la chaîne, à l'aide de la valeur CompareOptions.

IndexOf(String, String, Int32, Int32)

Recherche la sous-chaîne spécifiée et retourne l'index de base zéro de la première occurrence trouvée dans la section de la chaîne source commençant à l'index spécifié et contenant le nombre d'éléments spécifié.

IndexOf(String, String, Int32, Int32, CompareOptions)

Recherche la sous-chaîne spécifiée et retourne l'index de base zéro de la première occurrence trouvée dans la section de la chaîne source commençant à l'index spécifié et contenant le nombre d'éléments spécifié, à l'aide de la valeur CompareOptions spécifiée.

IsPrefix(ReadOnlySpan<Char>, ReadOnlySpan<Char>, CompareOptions)

Détermine si une étendue de caractères en lecture seule commence par un préfixe spécifique.

IsPrefix(ReadOnlySpan<Char>, ReadOnlySpan<Char>, CompareOptions, Int32)

Détermine si une chaîne commence par un préfixe spécifié.

IsPrefix(String, String)

Détermine si la chaîne source spécifiée commence par le préfixe spécifié.

IsPrefix(String, String, CompareOptions)

Détermine si la chaîne source spécifiée commence par le préfixe spécifié, à l'aide de la valeur CompareOptions spécifiée.

IsSortable(Char)

Indique si un caractère Unicode spécifié peut être trié.

IsSortable(ReadOnlySpan<Char>)

Indique si une étendue spécifiée de caractère Unicode en lecture seule peut être triée.

IsSortable(Rune)

Indique si un Rune spécifié peut être trié.

IsSortable(String)

Indique si une chaîne Unicode spécifiée peut être triée.

IsSuffix(ReadOnlySpan<Char>, ReadOnlySpan<Char>, CompareOptions)

Détermine si une étendue de caractères en lecture seule se termine par un préfixe spécifique.

IsSuffix(ReadOnlySpan<Char>, ReadOnlySpan<Char>, CompareOptions, Int32)

Détermine si une chaîne se termine par un suffixe spécifique.

IsSuffix(String, String)

Détermine si la chaîne source spécifiée se termine par le suffixe spécifié.

IsSuffix(String, String, CompareOptions)

Détermine si la chaîne source spécifiée se termine par le suffixe spécifié, à l'aide de la valeur CompareOptions spécifiée.

LastIndexOf(ReadOnlySpan<Char>, ReadOnlySpan<Char>, CompareOptions)

Recherche la dernière occurrence d’une sous-chaîne dans l’étendue spécifiée de caractères en lecture seule.

LastIndexOf(ReadOnlySpan<Char>, ReadOnlySpan<Char>, CompareOptions, Int32)

Recherche la dernière occurrence d’une sous-chaîne dans une chaîne source.

LastIndexOf(ReadOnlySpan<Char>, Rune, CompareOptions)

Recherche la dernière occurrence d’un Rune dans l’étendue spécifiée de caractères en lecture seule.

LastIndexOf(String, Char)

Recherche le caractère spécifié et retourne l'index de base zéro de la dernière occurrence dans la chaîne source entière.

LastIndexOf(String, Char, CompareOptions)

Recherche le caractère spécifié et retourne l'index de base zéro de la dernière occurrence dans la chaîne source entière, à l'aide de la valeur CompareOptions spécifiée.

LastIndexOf(String, Char, Int32)

Recherche le caractère spécifié et retourne l'index de base zéro de la dernière occurrence dans la section de la chaîne source comprise entre le début de la chaîne et l'index spécifié.

LastIndexOf(String, Char, Int32, CompareOptions)

Recherche le caractère spécifié et retourne l'index de base zéro de la dernière occurrence dans la section de la chaîne source comprise entre le début de la chaîne et l'index spécifié, à l'aide de la valeur CompareOptions spécifiée.

LastIndexOf(String, Char, Int32, Int32)

Recherche le caractère spécifié et retourne l'index de base zéro de la dernière occurrence dans la section de la chaîne source contenant le nombre d'éléments spécifié et se terminant à l'index spécifié.

LastIndexOf(String, Char, Int32, Int32, CompareOptions)

Recherche le caractère spécifié et retourne l'index de base zéro de la dernière occurrence dans la section de la chaîne source contenant le nombre d'éléments spécifié et se terminant à l'index spécifié, à l'aide de la valeur CompareOptions spécifiée.

LastIndexOf(String, String)

Recherche la sous-chaîne spécifiée et retourne l'index de base zéro de la dernière occurrence dans la chaîne source entière.

LastIndexOf(String, String, CompareOptions)

Recherche la sous-chaîne spécifiée et retourne l'index de base zéro de la dernière occurrence dans la chaîne source entière, à l'aide de la valeur CompareOptions spécifiée.

LastIndexOf(String, String, Int32)

Recherche la sous-chaîne spécifiée et retourne l'index de base zéro de la dernière occurrence dans la section de la chaîne source comprise entre le début de la chaîne et l'index spécifié.

LastIndexOf(String, String, Int32, CompareOptions)

Recherche la sous-chaîne spécifiée et retourne l'index de base zéro de la dernière occurrence dans la section de la chaîne source comprise entre le début de la chaîne et l'index spécifié, à l'aide de la valeur CompareOptions spécifiée.

LastIndexOf(String, String, Int32, Int32)

Recherche la sous-chaîne spécifiée et retourne l'index de base zéro de la dernière occurrence dans la section de la chaîne source contenant le nombre d'éléments spécifié et se terminant à l'index spécifié.

LastIndexOf(String, String, Int32, Int32, CompareOptions)

Recherche la sous-chaîne spécifiée et retourne l'index de base zéro de la dernière occurrence dans la section de la chaîne source contenant le nombre d'éléments spécifié et se terminant à l'index spécifié, à l'aide de la valeur CompareOptions spécifiée.

MemberwiseClone()

Crée une copie superficielle du Object actuel.

(Hérité de Object)
ToString()

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

Implémentations d’interfaces explicites

IDeserializationCallback.OnDeserialization(Object)

S'exécute une fois que le graphique d'objets est complètement désérialisé.

Méthodes d’extension

GetStringComparer(CompareInfo, CompareOptions)

Retourne un objet StringComparer basé sur les règles de comparaison de chaînes sensible à la culture d’un objet CompareInfo spécifié.

S’applique à

Voir aussi