Informations
Le sujet que vous avez demandé est indiqué ci-dessous. Toutefois, ce sujet ne figure pas dans la bibliothèque.
Ce sujet n'a pas encore été évalué - Évaluez ce sujet

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

Compare les sous-chaînes de deux objets String spécifiés 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
)

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.

Valeur de retour

Type : System.Int32
Entier signé 32 bits qui indique la relation lexicale entre les deux comparateurs.

Valeur

Condition

Inférieur à zéro

La sous-chaîne dans strA est inférieure à la sous-chaîne dans strB.

Zéro

Les sous-chaînes sont égales ou length est égal à zéro.

Supérieure à zéro

La sous-chaîne dans strA est supérieure à la sous-chaîne dans strB.

ExceptionCondition
ArgumentOutOfRangeException

indexA est supérieur à strA.Length.

ou

indexB est supérieur à strB.Length.

ou

indexA, indexB ou length est négatif.

ou

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

Les sous-chaînes à comparer commencent par strA à la position indexA et par strB à la position indexB. indexA et indexB sont des index de base zéro, c'est-à-dire que le premier caractère des chaînes strA et strB se trouve à la position d'index zéro. La longueur de la première sous-chaîne est égale à celle de strA moins indexA plus un. La longueur de la deuxième sous-chaîne est égale à celle 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. Les paramètres indexA, indexB et length doivent être non négatifs.

La comparaison utilise la culture en cours pour obtenir des informations spécifiques à la culture telles que les règles gouvernant la casse et l'ordre alphabétique de caractères individuels. Par exemple, une culture peut spécifier que certaines combinaisons de caractères soient traitées comme s'il s'agissait d'un caractère unique, que les caractères minuscules et majuscules soient comparés d'une manière spécifique, ou encore que l'ordre de tri d'un caractère soit fonction du caractère suivant ou précédent.

La comparaison est effectuée en fonction des règles applicables au tri des mots. Pour plus d'informations sur le tri des mots, des chaînes et sur le tri ordinal, consultez System.Globalization.CompareOptions.

Mise en gardeAttention

Lorsque vous comparez des chaînes, vous devez appeler la méthode Compare(String, Int32, String, Int32, Int32, StringComparison), qui nécessite que vous spécifiez explicitement le type de comparaison de chaînes que la méthode utilise. Pour plus d'informations, consultez Meilleures pratiques pour l'utilisation de chaînes dans le .NET Framework.

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 une fois les deux sous-chaînes comparées. Toutefois, si les deux chaînes sont équivalentes jusqu'à la fin d'une chaîne et qu'il reste des caractères dans l'autre chaîne, cette dernière est considérée comme étant plus grande. La valeur de retour est le résultat de la dernière comparaison effectuée.

Des résultats inattendus peuvent se produire si les comparaisons sont affectées par des règles gouvernant la casse spécifiques à la culture. Par exemple, dans la langue turque, l'exemple suivant génère des résultats erronés car le système de fichiers turc n'utilise pas les règles linguistiques se rapportant à la casse pour la lettre "i" dans "file".


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


Comparez le nom de chemin d'accès à "fichier" à l'aide d'une comparaison ordinale. Le code approprié permettant de réaliser cette action est le suivant :


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. La méthode Compare(String, Int32, String, Int32, Int32) ne considère pas ces caractères lorsqu'elle effectue une comparaison linguistique ou dépendante de la culture. Pour identifier les caractères pouvant être ignoré dans votre comparaison, appeler la méthode Compare(String, Int32, String, Int32, Int32, StringComparison) et fournir une valeur d'CompareOptions.Ordinal ou de CompareOptions.OrdinalIgnoreCase pour le paramètre comparisonType.

L'exemple suivant compare deux sous-chaînes.


// 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'.
*/


.NET Framework

Pris en charge dans : 4.5, 4, 3.5, 3.0, 2.0, 1.1, 1.0

.NET Framework Client Profile

Pris en charge dans : 4, 3.5 SP1

Bibliothèque de classes portable

Pris en charge dans : Bibliothèque de classes portable

.NET pour les applications du Windows Store

Pris en charge dans : Windows 8

Windows 8.1, Windows Server 2012 R2, Windows 8, Windows Server 2012, Windows 7, Windows Vista SP2, Windows Server 2008 (rôle principal du serveur non pris en charge), Windows Server 2008 R2 (rôle principal du serveur pris en charge avec SP1 ou version ultérieure ; Itanium non pris en charge)

Le .NET Framework ne prend pas en charge toutes les versions de chaque plateforme. Pour obtenir la liste des versions prises en charge, consultez Configuration requise du .NET Framework.
Cela vous a-t-il été utile ?
(1500 caractères restants)
Merci pour vos suggestions.

Ajouts de la communauté

Afficher:
© 2014 Microsoft. Tous droits réservés.