String.CompareOrdinal String.CompareOrdinal String.CompareOrdinal String.CompareOrdinal Method

Definição

Compara dois objetos String avaliando os valores numéricos dos objetos Char correspondentes em cada cadeia de caracteres.Compares two String objects by evaluating the numeric values of the corresponding Char objects in each string.

Sobrecargas

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

Compara dois objetos String especificados avaliando os valores numéricos dos objetos Char correspondentes em cada cadeia de caracteres.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)

Compara subcadeias de caracteres de dois objetos String especificados avaliando os valores numéricos dos objetos Char correspondentes em cada subcadeia de caracteres.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)

Compara dois objetos String especificados avaliando os valores numéricos dos objetos Char correspondentes em cada cadeia de caracteres.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

Parâmetros

strA
String String String String

A primeira cadeia de caracteres a ser comparada.The first string to compare.

strB
String String String String

A segunda cadeia de caracteres a ser comparada.The second string to compare.

Retornos

Um número inteiro que indica a relação lexical entre os dois termos de comparação.An integer that indicates the lexical relationship between the two comparands.

ValorValue CondiçãoCondition
Menor que zeroLess than zero strA é menor que strB.strA is less than strB.
ZeroZero strA e strB são iguais.strA and strB are equal.
Maior que zeroGreater than zero strA é maior que strB.strA is greater than strB.

Exemplos

O exemplo a seguir executa e a comparação ordinal de duas cadeias de caracteres que diferem apenas no caso.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)
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'.
'

Comentários

Esse método executa uma comparação que diferencia maiúsculas de minúsculas usando as regras de classificação ordinal.This method performs a case-sensitive comparison using ordinal sort rules. Para obter mais informações sobre a palavra, a cadeia de caracteres e os tipos ordinais, consulte System.Globalization.CompareOptions.For more information about word, string, and ordinal sorts, see System.Globalization.CompareOptions. Para executar uma comparação que não diferencia maiúsculas de minúsculas usando as regras Compare(String, String, StringComparison) de classificação ordinal comparisonType , chame o StringComparison.OrdinalIgnoreCasemétodo com o argumento definido como.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.

Porque CompareOrdinal(String, String) é um strA método estático e strB pode ser null.Because CompareOrdinal(String, String) is a static method, strA and strB can be null. Se ambos os valores nullforem, o método retornará 0 (zero), o que strA indica strB que e são iguais.If both values are null, the method returns 0 (zero), which indicates that strA and strB are equal. Se apenas um dos valores for null, o método considerará que o valor não nulo deve ser maior.If only one of the values is null, the method considers the non-null value to be greater.

Veja também

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

Compara subcadeias de caracteres de dois objetos String especificados avaliando os valores numéricos dos objetos Char correspondentes em cada subcadeia de caracteres.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

Parâmetros

strA
String String String String

A primeira cadeia de caracteres a ser usada na comparação.The first string to use in the comparison.

indexA
Int32 Int32 Int32 Int32

O índice inicial da subcadeia de caracteres em strA.The starting index of the substring in strA.

strB
String String String String

A segunda cadeia de caracteres a ser usada na comparação.The second string to use in the comparison.

indexB
Int32 Int32 Int32 Int32

O índice inicial da subcadeia de caracteres em strB.The starting index of the substring in strB.

length
Int32 Int32 Int32 Int32

O número máximo de caracteres nas subcadeias de caracteres a serem comparadas.The maximum number of characters in the substrings to compare.

Retornos

Um inteiro assinado de 32 bits que indica a relação léxica entre os dois termos de comparação.A 32-bit signed integer that indicates the lexical relationship between the two comparands.

ValorValue CondiçãoCondition
Menor que zeroLess than zero A subcadeia de caracteres em strA é menor que a subcadeia de caracteres em strB.The substring in strA is less than the substring in strB.
ZeroZero As subcadeias de caracteres são iguais ou length é zero.The substrings are equal, or length is zero.
Maior que zeroGreater than zero A subcadeia de caracteres em strA é maior que a subcadeia de caracteres em strB.The substring in strA is greater than the substring in strB.

Exceções

strA não é null e indexA é maior que strA.Length.strA is not null and indexA is greater than strA.Length.

- ou --or- strB não é null e indexB é maior que strB.Length.strB is not null and indexB is greater than strB.Length.

- ou --or- indexA, indexB ou length é negativo.indexA, indexB, or length is negative.

Exemplos

Este exemplo a seguir demonstra CompareOrdinal que Compare e usam diferentes ordens de classificação.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
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

Comentários

Os parâmetros indexA, indexB e length devem ser não negativos.The indexA, indexB, and length parameters must be nonnegative.

O número de caracteres comparados é menor do que o strA comprimento indexAmenor, o comprimento strB de indexBmenos e length.The number of characters compared is the lesser of the length of strA less indexA, the length of strB less indexB, and length.

Esse método executa uma comparação que diferencia maiúsculas de minúsculas usando as regras de classificação ordinal.This method performs a case-sensitive comparison using ordinal sort rules. Para obter mais informações sobre a palavra, a cadeia de caracteres e os tipos ordinais, consulte System.Globalization.CompareOptions.For more information about word, string, and ordinal sorts, see System.Globalization.CompareOptions. Para executar uma comparação que não diferencia maiúsculas de minúsculas usando as regras Compare(String, Int32, String, Int32, Int32, StringComparison) de classificação ordinal comparisonType , chame o StringComparison.OrdinalIgnoreCasemétodo com o argumento definido como.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.

Porque CompareOrdinal(String, String) é um strA método estático e strB pode ser null.Because CompareOrdinal(String, String) is a static method, strA and strB can be null. Se ambos os valores nullforem, o método retornará 0 (zero), o que strA indica strB que e são iguais.If both values are null, the method returns 0 (zero), which indicates that strA and strB are equal. Se apenas um dos valores for null, o método considerará que o valor não nulo deve ser maior.If only one of the values is null, the method considers the non-null value to be greater.

Veja também

Aplica-se a