String.CompareOrdinal Metoda
Definicja
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)
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
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
indexA
Parametry, 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)
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
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.