String.CompareOrdinal Metoda

Definicja

Porównuje dwa String obiekty, oceniając wartości liczbowe odpowiednich Char obiektów w każdym ciągu.Compares two String objects by evaluating the numeric values of the corresponding Char objects in each string.

Przeciążenia

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

Porównuje podciągi dwóch określonych String obiektów przez obliczenie wartości liczbowych odpowiednich Char obiektów w każdym podciągu.Compares substrings of two specified String objects by evaluating the numeric values of the corresponding Char objects in each substring.

CompareOrdinal(String, String)

Porównuje dwa określone String obiekty przez ocenę wartości liczbowych odpowiednich Char obiektów w każdym ciągu.Compares two specified String objects by evaluating the numeric values of the corresponding Char objects in each string.

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

Porównuje podciągi dwóch określonych String obiektów przez obliczenie wartości liczbowych odpowiednich Char obiektów w każdym podciągu.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

Parametry

strA
String

Pierwszy ciąg do użycia w porównaniu.The first string to use in the comparison.

indexA
Int32

Początkowy indeks podciągu w strA .The starting index of the substring in strA.

strB
String

Drugi ciąg do użycia w porównaniu.The second string to use in the comparison.

indexB
Int32

Początkowy indeks podciągu w strB .The starting index of the substring in strB.

length
Int32

Maksymalna liczba znaków w podciągach do porównania.The maximum number of characters in the substrings to compare.

Zwraca

Int32

32-bitowa oznaczona liczba całkowita wskazująca relację leksykalną między dwoma argumentami porównania.A 32-bit signed integer that indicates the lexical relationship between the two comparands.

WartośćValue WarunekCondition
Mniej niż zeroLess than zero Podciąg w strA jest krótszy niż podciąg w strB .The substring in strA is less than the substring in strB.
ZeroZero Podciągi są równe lub length wynosi zero.The substrings are equal, or length is zero.
Większe od zeraGreater than zero Podciąg w strA jest większy niż podciąg w strB .The substring in strA is greater than the substring in strB.

Wyjątki

strA nie jest null i indexA jest większe niż strA . Length .strA is not null and indexA is greater than strA.Length.

-lub--or-

strB nie jest null i indexB jest większe niż strB . Length .strB is not null and indexB is greater than strB.Length.

-lub--or-

indexA, indexB , lub length jest wartością ujemną.indexA, indexB, or length is negative.

Przykłady

Poniższy przykład pokazuje, że CompareOrdinal i Compare używa różnych kolejności sortowania.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

Uwagi

indexAParametry, indexB i nie length mogą być ujemne.The indexA, indexB, and length parameters must be nonnegative.

Liczba porównywanych znaków to mniejsza długość strA mniejsza indexA , długość strB mniejsza indexB i length .The number of characters compared is the lesser of the length of strA less indexA, the length of strB less indexB, and length.

Ta metoda wykonuje porównanie z rozróżnianiem wielkości liter przy użyciu reguł sortowania porządkowego.This method performs a case-sensitive comparison using ordinal sort rules. Więcej informacji na temat wyrazów, ciągów i liczb porządkowych można znaleźć w temacie System.Globalization.CompareOptions .For more information about word, string, and ordinal sorts, see System.Globalization.CompareOptions. Aby wykonać porównanie bez uwzględniania wielkości liter przy użyciu reguł sortowania porządkowego, wywołaj Compare(String, Int32, String, Int32, Int32, StringComparison) metodę z comparisonType argumentem ustawionym na 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.

Ponieważ CompareOrdinal(String, String) jest metodą statyczną strA i strB może być null .Because CompareOrdinal(String, String) is a static method, strA and strB can be null. Jeśli obie wartości są null , metoda zwraca 0 (zero), co oznacza, że strA i strB są równe.If both values are null, the method returns 0 (zero), which indicates that strA and strB are equal. Jeśli jest tylko jedna z wartości null , Metoda traktuje wartość inną niż null, aby była większa.If only one of the values is null, the method considers the non-null value to be greater.

Zobacz też

Dotyczy

CompareOrdinal(String, String)

Porównuje dwa określone String obiekty przez ocenę wartości liczbowych odpowiednich Char obiektów w każdym ciągu.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

Parametry

strA
String

Pierwszy ciąg do porównania.The first string to compare.

strB
String

Drugi ciąg do porównania.The second string to compare.

Zwraca

Int32

Liczba całkowita, która wskazuje leksykalną relację między dwoma comparands.An integer that indicates the lexical relationship between the two comparands.

WartośćValue WarunekCondition
Mniej niż zeroLess than zero strA jest mniejsze niż strB .strA is less than strB.
ZeroZero strA i strB są równe.strA and strB are equal.
Większe od zeraGreater than zero strA jest większa niż strB .strA is greater than strB.

Przykłady

Poniższy przykład wykonuje i porównywanie porządkowe dwóch ciągów, które różnią się tylko wielkością liter.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'.
'

Uwagi

Ta metoda wykonuje porównanie z rozróżnianiem wielkości liter przy użyciu reguł sortowania porządkowego.This method performs a case-sensitive comparison using ordinal sort rules. Więcej informacji na temat wyrazów, ciągów i liczb porządkowych można znaleźć w temacie System.Globalization.CompareOptions .For more information about word, string, and ordinal sorts, see System.Globalization.CompareOptions. Aby wykonać porównanie bez uwzględniania wielkości liter przy użyciu reguł sortowania porządkowego, wywołaj Compare(String, String, StringComparison) metodę z comparisonType argumentem ustawionym na 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.

Ponieważ CompareOrdinal(String, String) jest metodą statyczną strA i strB może być null .Because CompareOrdinal(String, String) is a static method, strA and strB can be null. Jeśli obie wartości są null , metoda zwraca 0 (zero), co oznacza, że strA i strB są równe.If both values are null, the method returns 0 (zero), which indicates that strA and strB are equal. Jeśli jest tylko jedna z wartości null , Metoda traktuje wartość inną niż null, aby była większa.If only one of the values is null, the method considers the non-null value to be greater.

Zobacz też

Dotyczy