# String.CompareOrdinalString.CompareOrdinalString.CompareOrdinalString.CompareOrdinal Method

## 多載

 CompareOrdinal(String, String) CompareOrdinal(String, String) CompareOrdinal(String, String) CompareOrdinal(String, String) 藉由評估每個字串中對應的 String 物件之數字值，比較兩個指定 Char 物件。Compares two specified String objects by evaluating the numeric values of the corresponding Char objects in each string. CompareOrdinal(String, Int32, String, Int32, Int32) CompareOrdinal(String, Int32, String, Int32, Int32) CompareOrdinal(String, Int32, String, Int32, Int32) CompareOrdinal(String, Int32, String, Int32, Int32) 藉由評估每個子字串中對應的 String 物件之數字值，比較兩個指定的 Char 物件之子字串。Compares substrings of two specified String objects by evaluating the numeric values of the corresponding Char objects in each substring.

## CompareOrdinal(String, String)CompareOrdinal(String, String)CompareOrdinal(String, String)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``

#### 參數

strA
String String String String

strB
String String String String

#### 傳回

Value 條件Condition

Zero `strA``strB` 相等。`strA` and `strB` are equal.

### 範例

``````// 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)
Imports System
Imports Microsoft.VisualBasic

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 'Main
End Class 'Sample
'
'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'.
'
``````

## CompareOrdinal(String, Int32, String, Int32, Int32)CompareOrdinal(String, Int32, String, Int32, Int32)CompareOrdinal(String, Int32, String, Int32, Int32)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``

#### 參數

strA
String String String String

indexA
Int32 Int32 Int32 Int32

`strA` 中子字串的起始索引。The starting index of the substring in `strA`.

strB
String String String String

indexB
Int32 Int32 Int32 Int32

`strB` 中子字串的起始索引。The starting index of the substring in `strB`.

length
Int32 Int32 Int32 Int32

#### 傳回

32 位元帶正負號的整數，表示兩個比較元之間的語彙關係。A 32-bit signed integer that indicates the lexical relationship between the two comparands.

Value 條件Condition

Zero 子字串相等，或者 `length` 為零。The substrings are equal, or `length` is zero.

#### 例外狀況

`strA` 不是 `null``indexA` 大於 `strA`.Length`strA` is not `null` and `indexA` is greater than `strA`.Length.

-或--or- `strB` 不是 `null``indexB` 大於 `strB`.Length`strB` is not `null` and `indexB` is greater than `strB`.Length.

-或--or- `indexA``indexB``length` 是負數。`indexA`, `indexB`, or `length` is negative.

### 範例

``````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
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 'Main
End Class 'Test
``````

### 備註

`indexA`、和參數`length`必須為非負值。 `indexB`The `indexA`, `indexB`, and `length` parameters must be nonnegative.