String.CompareOrdinal Méthode

Définition

Compare deux objets String en évaluant les valeurs numériques des objets Char correspondants dans chaque chaîne.Compares two String objects by evaluating the numeric values of the corresponding Char objects in each string.

Surcharges

CompareOrdinal(String, Int32, String, Int32, Int32)

Compare les sous-chaînes de deux objets String spécifiés en évaluant les valeurs numériques des objets Char correspondants de chaque sous-chaîne.Compares substrings of two specified String objects by evaluating the numeric values of the corresponding Char objects in each substring.

CompareOrdinal(String, String)

Compare deux objets String spécifiés en évaluant les valeurs numériques des objets Char correspondants dans chaque chaîne.Compares two specified String objects by evaluating the numeric values of the corresponding Char objects in each string.

CompareOrdinal(String, Int32, String, Int32, Int32)

Compare les sous-chaînes de deux objets String spécifiés en évaluant les valeurs numériques des objets Char correspondants de chaque sous-chaîne.Compares substrings of two specified String objects by evaluating the numeric values of the corresponding Char objects in each substring.

public:
 static int CompareOrdinal(System::String ^ strA, int indexA, System::String ^ strB, int indexB, int length);
public static int CompareOrdinal (string strA, int indexA, string strB, int indexB, int length);
static member CompareOrdinal : string * int * string * int * int -> int
Public Shared Function CompareOrdinal (strA As String, indexA As Integer, strB As String, indexB As Integer, length As Integer) As Integer

Paramètres

strA
String

Première chaîne à utiliser dans la comparaison.The first string to use in the comparison.

indexA
Int32

Index de départ de la sous-chaîne dans strA.The starting index of the substring in strA.

strB
String

Seconde chaîne à utiliser dans la comparaison.The second string to use in the comparison.

indexB
Int32

Index de départ de la sous-chaîne dans strB.The starting index of the substring in strB.

length
Int32

Nombre maximal de caractères dans les sous-chaînes à comparer.The maximum number of characters in the substrings to compare.

Retours

Entier signé 32 bits qui indique la relation lexicale entre les deux comparateurs.A 32-bit signed integer that indicates the lexical relationship between the two comparands.

ValueValue ConditionCondition
Inférieure à zéroLess than zero La sous-chaîne de strA est inférieure à la sous-chaîne de strB.The substring in strA is less than the substring in strB.
ZéroZero Les sous-chaînes sont égales ou length est égal à zéro.The substrings are equal, or length is zero.
Supérieure à zéroGreater than zero La sous-chaîne de strA est supérieure à la sous-chaîne de strB.The substring in strA is greater than the substring in strB.

Exceptions

strA n’est pas null et indexA est supérieur à strALength.strA is not null and indexA is greater than strA.Length.

- ou --or- strB n’est pas null et indexB est supérieur à strB.Length.strB is not null and indexB is greater than strB.Length.

- ou --or- indexA, indexB ou length est un nombre négatif.indexA, indexB, or length is negative.

Exemples

L’exemple suivant montre que CompareOrdinal et Compare utilisent différents ordres de tri.This following example demonstrates that CompareOrdinal and Compare use different sort orders.

using namespace System;
using namespace System::Globalization;
int main()
{
   String^ strLow = "abc";
   String^ strCap = "ABC";
   String^ result = "equal to ";
   int x = 0;
   int pos = 1;
   
   // The Unicode codepoint for 'b' is greater than the codepoint for 'B'.
   x = String::CompareOrdinal( strLow, pos, strCap, pos, 1 );
   if ( x < 0 )
      result = "less than";

   if ( x > 0 )
      result = "greater than";

   Console::WriteLine( "CompareOrdinal(\"{0}\"[{2}], \"{1}\"[{2}]):", strLow, strCap, pos );
   Console::WriteLine( "   '{0}' is {1} '{2}'", strLow[ pos ], result, strCap[ pos ] );

   // In U.S. English culture, 'b' is linguistically less than 'B'.
   x = String::Compare( strLow, pos, strCap, pos, 1, false, gcnew CultureInfo( "en-US" ) );
   if ( x < 0 )
      result = "less than";
   else
   if ( x > 0 )
      result = "greater than";

   Console::WriteLine( "Compare(\"{0}\"[{2}], \"{1}\"[{2}]):", strLow, strCap, pos );
   Console::WriteLine( "   '{0}' is {1} '{2}'", strLow[ pos ], result, strCap[ pos ] );
}
using System;
using System.Globalization;

class Test 
{
    public static void Main(String[] args) 
    {
    String strLow = "abc";
    String strCap = "ABC";
    String result = "equal to ";
    int x = 0;
    int pos = 1;

// The Unicode codepoint for 'b' is greater than the codepoint for 'B'.
    x = String.CompareOrdinal(strLow, pos, strCap, pos, 1);
    if (x < 0) result = "less than";
    if (x > 0) result = "greater than";
    Console.WriteLine("CompareOrdinal(\"{0}\"[{2}], \"{1}\"[{2}]):", strLow, strCap, pos);
    Console.WriteLine("   '{0}' is {1} '{2}'", strLow[pos], result, strCap[pos]);

// In U.S. English culture, 'b' is linguistically less than 'B'.
    x = String.Compare(strLow, pos, strCap, pos, 1, false, new CultureInfo("en-US"));
    if (x < 0) result = "less than";
    else if (x > 0) result = "greater than";
    Console.WriteLine("Compare(\"{0}\"[{2}], \"{1}\"[{2}]):", strLow, strCap, pos);
    Console.WriteLine("   '{0}' is {1} '{2}'", strLow[pos], result, strCap[pos]);
    }
}
Imports System.Globalization

Class Test
   
  Public Shared Sub Main(args() As [String])
      Dim strLow As [String] = "abc"
      Dim strCap As [String] = "ABC"
      Dim result As [String] = "equal to "
      Dim x As Integer = 0
      Dim pos As Integer = 1

' The Unicode codepoint for 'b' is greater than the codepoint for 'B'.      
      x = [String].CompareOrdinal(strLow, pos, strCap, pos, 1)
      If x < 0 Then
         result = "less than"
      End If
      If x > 0 Then
         result = "greater than"
      End If

' In U.S. English culture, 'b' is linguistically less than 'B'.
      Console.WriteLine("CompareOrdinal(""{0}"".Chars({2}), ""{1}"".Chars({2})):", strLow, strCap, pos)
      
      Console.WriteLine("   '{0}' is {1} '{2}'", strLow.Chars(pos), result, strCap.Chars(pos))
      
      x = [String].Compare(strLow, pos, strCap, pos, 1, False, New CultureInfo("en-US"))
      If x < 0 Then
         result = "less than"
      ElseIf x > 0 Then
         result = "greater than"
      End If
      Console.WriteLine("Compare(""{0}"".Chars({2}), ""{1}"".Chars({2})):", strLow, strCap, pos)
      Console.WriteLine("   '{0}' is {1} '{2}'", strLow.Chars(pos), result, strCap.Chars(pos))
   End Sub
End Class

Remarques

Les paramètres indexA, indexBet length ne doivent pas être négatifs.The indexA, indexB, and length parameters must be nonnegative.

Le nombre de caractères comparés est le plus petit de la longueur de strA moins indexA, la longueur de strB moins indexBet length.The number of characters compared is the lesser of the length of strA less indexA, the length of strB less indexB, and length.

Cette méthode effectue une comparaison respectant la casse à l’aide de règles de tri ordinal.This method performs a case-sensitive comparison using ordinal sort rules. Pour plus d’informations sur les tris de mot, de chaîne et ordinal, consultez System.Globalization.CompareOptions.For more information about word, string, and ordinal sorts, see System.Globalization.CompareOptions. Pour effectuer une comparaison ne respectant pas la casse à l’aide de règles de tri ordinal, appelez la méthode Compare(String, Int32, String, Int32, Int32, StringComparison) avec l’argument comparisonType défini sur StringComparison.OrdinalIgnoreCase.To perform a case-insensitive comparison using ordinal sort rules, call the Compare(String, Int32, String, Int32, Int32, StringComparison) method with the comparisonType argument set to StringComparison.OrdinalIgnoreCase.

Étant donné que CompareOrdinal(String, String) est une méthode statique, strA et strB peuvent être null.Because CompareOrdinal(String, String) is a static method, strA and strB can be null. Si les deux valeurs sont null, la méthode retourne 0 (zéro), ce qui indique que strA et strB sont égaux.If both values are null, the method returns 0 (zero), which indicates that strA and strB are equal. Si une seule des valeurs est null, la méthode considère que la valeur non null est supérieure.If only one of the values is null, the method considers the non-null value to be greater.

Voir aussi

CompareOrdinal(String, String)

Compare deux objets String spécifiés en évaluant les valeurs numériques des objets Char correspondants dans chaque chaîne.Compares two specified String objects by evaluating the numeric values of the corresponding Char objects in each string.

public:
 static int CompareOrdinal(System::String ^ strA, System::String ^ strB);
public static int CompareOrdinal (string strA, string strB);
static member CompareOrdinal : string * string -> int
Public Shared Function CompareOrdinal (strA As String, strB As String) As Integer

Paramètres

strA
String

Première chaîne à comparer.The first string to compare.

strB
String

Deuxième chaîne à comparer.The second string to compare.

Retours

Entier qui indique la relation lexicale entre les deux comparateurs.An integer that indicates the lexical relationship between the two comparands.

ValueValue ConditionCondition
Inférieure à zéroLess than zero strA est inférieur à strB.strA is less than strB.
ZéroZero strA et strB sont égaux.strA and strB are equal.
Supérieure à zéroGreater than zero strA est supérieur à strB.strA is greater than strB.

Exemples

L’exemple suivant effectue une comparaison ordinale de deux chaînes qui diffèrent uniquement par la casse.The following example performs and ordinal comparison of two strings that only differ in case.

// Sample for String::CompareOrdinal(String, String)
using namespace System;
int main()
{
   String^ str1 = "ABCD";
   String^ str2 = "abcd";
   String^ str;
   int result;
   Console::WriteLine();
   Console::WriteLine( "Compare the numeric values of the corresponding Char objects in each string." );
   Console::WriteLine( "str1 = '{0}', str2 = '{1}'", str1, str2 );
   result = String::CompareOrdinal( str1, str2 );
   str = ((result < 0) ? "less than" : ((result > 0) ? (String^)"greater than" : "equal to"));
   Console::Write( "String '{0}' is ", str1 );
   Console::Write( "{0} ", str );
   Console::WriteLine( "String '{0}'.", str2 );
}

/*
This example produces the following results:

Compare the numeric values of the corresponding Char objects in each string.
str1 = 'ABCD', str2 = 'abcd'
String 'ABCD' is less than String 'abcd'.
*/
// Sample for String.CompareOrdinal(String, String)
using System;

class Sample {
    public static void Main() {
    String str1 = "ABCD";
    String str2 = "abcd";
    String str;
    int result;

    Console.WriteLine();
    Console.WriteLine("Compare the numeric values of the corresponding Char objects in each string.");
    Console.WriteLine("str1 = '{0}', str2 = '{1}'", str1, str2);
    result = String.CompareOrdinal(str1, str2);
    str = ((result < 0) ? "less than" : ((result > 0) ? "greater than" : "equal to"));
    Console.Write("String '{0}' is ", str1);
    Console.Write("{0} ", str);
    Console.WriteLine("String '{0}'.", str2);
    }
}
/*
This example produces the following results:

Compare the numeric values of the corresponding Char objects in each string.
str1 = 'ABCD', str2 = 'abcd'
String 'ABCD' is less than String 'abcd'.
*/
' Sample for String.CompareOrdinal(String, String)
Class Sample
   Public Shared Sub Main()
      Dim str1 As [String] = "ABCD"
      Dim str2 As [String] = "abcd"
      Dim str As [String]
      Dim result As Integer
      
      Console.WriteLine()
      Console.WriteLine("Compare the numeric values of the corresponding Char objects in each string.")
      Console.WriteLine("str1 = '{0}', str2 = '{1}'", str1, str2)
      result = [String].CompareOrdinal(str1, str2)
      str = IIf(result < 0, "less than", IIf(result > 0, "greater than", "equal to"))
      Console.Write("String '{0}' is ", str1)
      Console.Write("{0} ", str)
      Console.WriteLine("String '{0}'.", str2)
   End Sub
End Class
'
'This example produces the following results:
'
'Compare the numeric values of the corresponding Char objects in each string.
'str1 = 'ABCD', str2 = 'abcd'
'String 'ABCD' is less than String 'abcd'.
'

Remarques

Cette méthode effectue une comparaison respectant la casse à l’aide de règles de tri ordinal.This method performs a case-sensitive comparison using ordinal sort rules. Pour plus d’informations sur les tris de mot, de chaîne et ordinal, consultez System.Globalization.CompareOptions.For more information about word, string, and ordinal sorts, see System.Globalization.CompareOptions. Pour effectuer une comparaison ne respectant pas la casse à l’aide de règles de tri ordinal, appelez la méthode Compare(String, String, StringComparison) avec l’argument comparisonType défini sur StringComparison.OrdinalIgnoreCase.To perform a case-insensitive comparison using ordinal sort rules, call the Compare(String, String, StringComparison) method with the comparisonType argument set to StringComparison.OrdinalIgnoreCase.

Étant donné que CompareOrdinal(String, String) est une méthode statique, strA et strB peuvent être null.Because CompareOrdinal(String, String) is a static method, strA and strB can be null. Si les deux valeurs sont null, la méthode retourne 0 (zéro), ce qui indique que strA et strB sont égaux.If both values are null, the method returns 0 (zero), which indicates that strA and strB are equal. Si une seule des valeurs est null, la méthode considère que la valeur non null est supérieure.If only one of the values is null, the method considers the non-null value to be greater.

Voir aussi

S’applique à