Udostępnij za pośrednictwem


String.CompareOrdinal Metoda

Definicja

Porównuje dwa String obiekty, oceniając wartości liczbowe odpowiednich Char obiektów w każdym ciągu.

Przeciążenia

CompareOrdinal(String, String)

Porównuje dwa określone String obiekty, oceniając wartości liczbowe odpowiednich Char obiektów w każdym ciągu.

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

Porównuje podciąg dwóch określonych String obiektów, oceniając wartości liczbowe odpowiednich Char obiektów w poszczególnych podciągach.

CompareOrdinal(String, String)

Źródło:
String.Comparison.cs
Źródło:
String.Comparison.cs
Źródło:
String.Comparison.cs

Porównuje dwa określone String obiekty, oceniając wartości liczbowe odpowiednich Char obiektów w każdym ciągu.

public:
 static int CompareOrdinal(System::String ^ strA, System::String ^ strB);
public static int CompareOrdinal (string strA, 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.

strB
String

Drugi ciąg do porównania.

Zwraca

Liczba całkowita wskazująca relację leksykalizaną między dwoma comparands.

Wartość Warunek
Mniej niż zero strA wartość jest mniejsza niż strB.
Zero strA i strB są równe.
Większe od zera strA wartość jest większa niż strB.

Przykłady

Poniższy przykład wykonuje i porządkowe porównanie dwóch ciągów, które różnią się tylko w przypadku.

// 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)
open System

let str1 = "ABCD"
let str2 = "abcd"

printfn "\nCompare the numeric values of the corresponding Char objects in each string."
printfn $"str1 = '{str1}', str2 = '{str2}'"
let result = String.CompareOrdinal(str1, str2)
let str = if result < 0 then "less than" elif result > 0 then "greater than" else "equal to"
printf $"String '{str1}' is "
printf $"{str} "
printfn $"String '{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 uwzględniające wielkość liter przy użyciu reguł sortowania porządkowego. Aby uzyskać więcej informacji na temat sortowania wyrazów, ciągów i porządkowych, zobacz System.Globalization.CompareOptions. Aby przeprowadzić porównanie bez uwzględniania wielkości liter przy użyciu reguł sortowania porządkowego, wywołaj Compare(String, String, StringComparison) metodę z argumentem ustawionym na comparisonTypeStringComparison.OrdinalIgnoreCasewartość .

Ponieważ CompareOrdinal(String, String) jest metodą statyczną i strAstrB może być null. Jeśli obie wartości to null, metoda zwraca wartość 0 (zero), która wskazuje, że strA i strB są równe. Jeśli tylko jedna z wartości to null, metoda uważa, że wartość niepusta jest większa.

Zobacz też

Dotyczy

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

Źródło:
String.Comparison.cs
Źródło:
String.Comparison.cs
Źródło:
String.Comparison.cs

Porównuje podciąg dwóch określonych String obiektów, oceniając wartości liczbowe odpowiednich Char obiektów w poszczególnych podciągach.

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);
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.

indexA
Int32

Początkowy indeks podciągów w pliku strA.

strB
String

Drugi ciąg do użycia w porównaniu.

indexB
Int32

Początkowy indeks podciągów w pliku strB.

length
Int32

Maksymalna liczba znaków w podciągach do porównania.

Zwraca

32-bitowa oznaczona liczba całkowita wskazująca relację leksykalną między dwoma argumentami porównania.

Wartość Warunek
Mniej niż zero Podciąg w obiekcie strA jest mniejszy niż podciąg w elemecie strB.
Zero Podciągy są równe lub length są zerowe.
Większe od zera Podciąg w obiekcie strA jest większy niż podciąg w elemecie strB.

Wyjątki

strA nie null jest i indexA jest większy niż strA.Length.

-lub-

strB nie null jest i indexB jest większy niż strB.Length.

-lub-

indexA, indexBlub length jest ujemny.

Przykłady

W poniższym przykładzie pokazano, że CompareOrdinal i Compare używać różnych zamówień sortowania.

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]);
    }
}
open System
open System.Globalization

[<EntryPoint>]
let main _ =
    let strLow = "abc"
    let strCap = "ABC"
    let result = "equal to "
    let pos = 1

    // The Unicode codepoint for 'b' is greater than the codepoint for 'B'.
    let x = String.CompareOrdinal(strLow, pos, strCap, pos, 1)
    let result =
        if x < 0 then "less than"
        elif x > 0 then "greater than"
        else "equal to"
    printfn $"CompareOrdinal(\"{strLow}\"[{pos}], \"{strCap}\"[{pos}]):"
    printfn $"   '{strLow[pos]}' is {result} '{strCap[pos]}'"

    // In U.S. English culture, 'b' is linguistically less than 'B'.
    let x = String.Compare(strLow, pos, strCap, pos, 1, false, new CultureInfo("en-US"))
    let result =
        if x < 0 then "less than"
        elif x > 0 then "greater than"
        else "equal to"
    printfn $"Compare(\"{strLow}\"[{pos}], \"{strCap}\"[{pos}]):"
    printfn $"   '{strLow[pos]}' is {result} '{strCap[pos]}'"
    0
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

Parametry indexA, indexBi length muszą być nienegacyjne.

Liczba porównanych znaków jest mniejsza od długości mniejszej indexA, długości mniejszej strBindexB, i length.strA

Ta metoda wykonuje porównanie uwzględniające wielkość liter przy użyciu reguł sortowania porządkowego. Aby uzyskać więcej informacji na temat sortowania wyrazów, ciągów i porządkowych, zobacz System.Globalization.CompareOptions. Aby przeprowadzić 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 argumentem ustawionym na comparisonTypeStringComparison.OrdinalIgnoreCasewartość .

Ponieważ CompareOrdinal(String, String) jest metodą statyczną i strAstrB może być null. Jeśli obie wartości to null, metoda zwraca wartość 0 (zero), która wskazuje, że strA i strB są równe. Jeśli tylko jedna z wartości to null, metoda uważa, że wartość niepusta jest większa.

Zobacz też

Dotyczy