Cet article a fait l’objet d’une traduction automatique. Pour afficher l’article en anglais, activez la case d’option Anglais. Vous pouvez également afficher le texte anglais dans une fenêtre contextuelle en faisant glisser le pointeur de la souris sur le texte traduit.
Traduction
Anglais

String.Compare méthode (String, Int32, String, Int32, Int32, StringComparison)

 

Date de publication : novembre 2016

Compare les sous-chaînes de deux objets String spécifiés à l'aide des règles désignées et retourne un entier qui indique leur position relative dans l'ordre de tri.

Espace de noms:   System
Assembly:  mscorlib (dans mscorlib.dll)

public static int Compare(
	string strA,
	int indexA,
	string strB,
	int indexB,
	int length,
	StringComparison comparisonType
)

Paramètres

strA
Type: System.String

Première chaîne à utiliser dans la comparaison.

indexA
Type: System.Int32

Position de la sous-chaîne dans strA.

strB
Type: System.String

Seconde chaîne à utiliser dans la comparaison.

indexB
Type: System.Int32

Position de la sous-chaîne dans strB.

length
Type: System.Int32

Nombre maximal de caractères dans les sous-chaînes à comparer.

comparisonType
Type: System.StringComparison

Une des valeurs d'énumération qui spécifie les règles à utiliser dans la comparaison.

Valeur de retour

Type: System.Int32

Entier signé 32 bits qui indique la relation lexicale entre les deux comparateurs.

Valeur

Condition

Inférieure à zéro

La sous-chaîne de strA précède la sous-chaîne de strB dans l’ordre de tri.

Zéro

Les sous-chaînes se produisent dans la même position dans l’ordre de tri, ou le length paramètre est égal à zéro.

Supérieure à zéro

La sous-chaîne dans strA follllows la sous-chaîne dans strB dans l’ordre de tri.

Exception Condition
ArgumentOutOfRangeException

indexA est supérieur à strALength.

ou

indexB est supérieur à strBLength.

ou

indexA, indexB ou length est un nombre négatif.

ou

indexA ou indexB a pour valeur null, et length est supérieur à zéro.

ArgumentException

comparisonType n’est pas une valeur StringComparison.

Les sous-chaînes à comparer commencent strA à indexA et dans strB à indexB. Les deux indexA et indexB sont de base zéro, c'est-à-dire le premier caractère dans strA et strB est à la position zéro, ne placez pas un. La longueur de la première sous-chaîne est égale à la longueur de strA moins indexA plus un. La longueur de la deuxième sous-chaîne est égale à la longueur de strB moins indexB plus un.

Le nombre de caractères à comparer est le plus petit des longueurs des deux sous-chaînes, et length. Le indexA, indexB, et length paramètres doivent être non négatifs.

Le comparisonType paramètre indique si la comparaison doit utiliser la culture actuelle ou indifférente, respecter ou ignorer la casse des comparateurs ou utiliser word (dépendante de la culture) ou des règles de tri basé sur ordinale (indépendante de la culture).

Un ou les deux comparateurs peuvent être null. Par définition, toute chaîne, y compris la chaîne vide (« »), est supérieure à une référence null ; et deux références null sont égales.

La comparaison se termine lorsqu’une inégalité est trouvée, ou les deux sous-chaînes ont été comparés. Toutefois, si les deux chaînes sont égales à la fin d’une chaîne et l’autre chaîne comporte des caractères restants, la chaîne de caractères restants est considéré comme supérieure. La valeur de retour est le résultat de la dernière comparaison effectuée.

Résultats inattendus peuvent se produire lorsque les comparaisons sont affectées par les règles de casse propres à la culture. Par exemple, dans la langue turque, l’exemple suivant donne des résultats erronés car le système de fichiers en turc n’utilise pas les règles de casse linguistique pour la lettre « i » dans « fichier ».

static bool IsFileURI(String path)
{
    return (String.Compare(path, 0, "file:", 0, 5, true) == 0);
}

Comparer le nom de chemin d’accès « file » à l’aide d’une comparaison ordinale. Voici le code correct pour ce faire :

static bool IsFileURI(String path)
{
    return (String.Compare(path, 0, "file:", 0, 5, StringComparison.OrdinalIgnoreCase) == 0);
}

Remarques à l’attention des appelants :

Les jeux de caractères incluent les caractères ignorables. Le Compare(String, Int32, String, Int32, Int32, StringComparison) méthode ne considère pas ces caractères lorsqu’elle effectue une comparaison linguistique ou dépendante de la culture. Pour qu’il reconnaisse les caractères ignorables dans votre comparaison, fournissez une valeur de StringComparison.Ordinal ou StringComparison.OrdinalIgnoreCase pour la comparisonType paramètre.

L’exemple suivant compare les sous-chaînes de deux.

// Sample for String.Compare(String, Int32, String, Int32, Int32)
using System;

class Sample {
    public static void Main() {
//                 0123456
    String str1 = "machine";
    String str2 = "device";
    String str;
    int result;

    Console.WriteLine();
    Console.WriteLine("str1 = '{0}', str2 = '{1}'", str1, str2);
    result = String.Compare(str1, 2, str2, 0, 2);
    str = ((result < 0) ? "less than" : ((result > 0) ? "greater than" : "equal to"));
    Console.Write("Substring '{0}' in '{1}' is ", str1.Substring(2, 2), str1);
    Console.Write("{0} ", str);
    Console.WriteLine("substring '{0}' in '{1}'.", str2.Substring(0, 2), str2);
    }
}
/*
This example produces the following results:

str1 = 'machine', str2 = 'device'
Substring 'ch' in 'machine' is less than substring 'de' in 'device'.
*/

Plateforme Windows universelle
Disponible depuis 8
.NET Framework
Disponible depuis 2.0
Bibliothèque de classes portable
Pris en charge dans : plateformes .NET portables
Silverlight
Disponible depuis 2.0
Silverlight pour Windows Phone
Disponible depuis 7.0
Windows Phone
Disponible depuis 8.1
Retour au début
Afficher: