String.CompareOrdinal 메서드

정의

각 문자열에서 해당하는 String 개체의 숫자 값을 계산해서 두 Char 개체를 비교합니다.Compares two String objects by evaluating the numeric values of the corresponding Char objects in each string.

오버로드

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)

각 문자열에서 해당하는 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)

각 부분 문자열에서 해당하는 String 개체의 숫자 값을 계산하여 지정된 두 Char 개체의 부분 문자열을 비교합니다.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

매개 변수

strA
String

비교에 사용할 첫 번째 문자열입니다.The first string to use in the comparison.

indexA
Int32

strA에 있는 부분 문자열의 시작 인덱스입니다.The starting index of the substring in strA.

strB
String

비교에 사용할 두 번째 문자열입니다.The second string to use in the comparison.

indexB
Int32

strB에 있는 부분 문자열의 시작 인덱스입니다.The starting index of the substring in strB.

length
Int32

비교할 부분 문자열의 최대 문자 수입니다.The maximum number of characters in the substrings to compare.

반환

두 비교 대상 간의 어휘 관계를 나타내는 32비트 부호 있는 정수입니다.A 32-bit signed integer that indicates the lexical relationship between the two comparands.

Value 조건Condition
0보다 작음Less than zero strA의 부분 문자열이 strB의 부분 문자열보다 작습니다.The substring in strA is less than the substring in strB.
0Zero 부분 문자열이 같거나 length가 0입니다.The substrings are equal, or length is zero.
0보다 큼Greater than zero strA의 부분 문자열이 strB의 부분 문자열보다 큽니다.The substring in strA is greater than the substring in strB.

예외

strAnull이 아니고, indexAstrA.Length보다 큽니다.strA is not null and indexA is greater than strA.Length.

-또는--or- strBnull이 아니고, indexBstrB.Length보다 큽니다.strB is not null and indexB is greater than strB.Length.

-또는--or- indexA, indexB 또는 length가 음수입니다.indexA, indexB, or length is negative.

예제

다음 예제에서는 함을 CompareOrdinalCompare 다른 정렬 순서를 사용 합니다.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

설명

합니다 indexA, indexB, 및 length 매개 변수는 음수일 수 없습니다.The indexA, indexB, and length parameters must be nonnegative.

비교 되는 문자 수가 더 작고 길이 대 한 strA 적은 indexA, 길이의 strB less indexB, 및 length합니다.The number of characters compared is the lesser of the length of strA less indexA, the length of strB less indexB, and length.

이 메서드는 서 수 정렬 규칙을 사용 하 여 대/소문자 구분 비교를 수행 합니다.This method performs a case-sensitive comparison using ordinal sort rules. Word, 문자열 및 서 수 정렬 하는 방법에 대 한 자세한 내용은 참조 하세요. System.Globalization.CompareOptions합니다.For more information about word, string, and ordinal sorts, see System.Globalization.CompareOptions. 서 수 정렬 규칙을 사용 하 여 대/소문자 구분 비교를 수행 하려면 호출을 Compare(String, Int32, String, Int32, Int32, StringComparison) 메서드를 comparisonType 인수와 함께 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.

때문에 CompareOrdinal(String, String) 는 정적 메서드입니다 strA 하 고 strBnull입니다.Because CompareOrdinal(String, String) is a static method, strA and strB can be null. 두 값이 null, 메서드를 나타내는 0 (영)을 반환 합니다 strAstrB 같은지 합니다.If both values are null, the method returns 0 (zero), which indicates that strA and strB are equal. 값 중 하나인 경우 null, 메서드는 null이 아닌 큰 값을 고려 합니다.If only one of the values is null, the method considers the non-null value to be greater.

추가 정보

CompareOrdinal(String, String)

각 문자열에서 해당하는 String 개체의 숫자 값을 계산해서 두 지정된 Char 개체를 비교합니다.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

매개 변수

strA
String

비교할 첫째 문자열입니다.The first string to compare.

strB
String

비교할 둘째 문자열입니다.The second string to compare.

반환

두 비교 대상 간의 어휘 관계를 나타내는 정수입니다.An integer that indicates the lexical relationship between the two comparands.

Value 조건Condition
0보다 작음Less than zero strAstrB보다 작은 경우strA is less than strB.
0Zero strAstrB가 같은 경우strA and strB are equal.
0보다 큼Greater than zero strAstrB보다 큰 경우strA is greater than strB.

예제

다음 예제에서는 수행 하 고 문자열 2의 서 수 비교에서 대/소문자만 다릅니다.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'.
'

설명

이 메서드는 서 수 정렬 규칙을 사용 하 여 대/소문자 구분 비교를 수행 합니다.This method performs a case-sensitive comparison using ordinal sort rules. Word, 문자열 및 서 수 정렬 하는 방법에 대 한 자세한 내용은 참조 하세요. System.Globalization.CompareOptions합니다.For more information about word, string, and ordinal sorts, see System.Globalization.CompareOptions. 서 수 정렬 규칙을 사용 하 여 대/소문자 구분 비교를 수행 하려면 호출을 Compare(String, String, StringComparison) 메서드를 comparisonType 인수와 함께 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.

때문에 CompareOrdinal(String, String) 는 정적 메서드입니다 strA 하 고 strBnull입니다.Because CompareOrdinal(String, String) is a static method, strA and strB can be null. 두 값이 null, 메서드를 나타내는 0 (영)을 반환 합니다 strAstrB 같은지 합니다.If both values are null, the method returns 0 (zero), which indicates that strA and strB are equal. 값 중 하나인 경우 null, 메서드는 null이 아닌 큰 값을 고려 합니다.If only one of the values is null, the method considers the non-null value to be greater.

추가 정보

적용 대상