String.CompareOrdinal Метод

Определение

Сравнивает два String объекта, оценивая числовые значения соответствующих Char объектов в каждой строке.

Перегрузки

Имя Описание
CompareOrdinal(String, String)

Сравнивает два указанных String объекта, оценивая числовые значения соответствующих Char объектов в каждой строке.

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

Сравнивает подстроки двух указанных String объектов, оценивая числовые значения соответствующих Char объектов в каждой подстроке.

CompareOrdinal(String, String)

Исходный код:
String.Comparison.cs
Исходный код:
String.Comparison.cs
Исходный код:
String.Comparison.cs
Исходный код:
String.Comparison.cs
Исходный код:
String.Comparison.cs

Сравнивает два указанных String объекта, оценивая числовые значения соответствующих Char объектов в каждой строке.

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

Параметры

strA
String

Первая сравниваемая строка.

strB
String

Вторая сравниваемая строка.

Возвращаемое значение

Целое число, указывающее лексическую связь между двумя сравнениями.

Ценность Состояние
Меньше нуля strA меньше strB.
Нуля strA и strB равны.
Больше нуля strA больше strB.

Примеры

В следующем примере выполняется и порядковое сравнение двух строк, которые различаются только в случае.

// 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'.
'

Комментарии

Этот метод выполняет сравнение с учетом регистра с помощью правил порядковой сортировки. Дополнительные сведения о словах, строках и порядковых сортировках см. в разделе System.Globalization.CompareOptions. Чтобы выполнить сравнение без учета регистра с использованием правил порядковой сортировки, вызовите Compare(String, String, StringComparison) метод с заданным comparisonTypeаргументомStringComparison.OrdinalIgnoreCase.

Так как CompareOrdinal(String, String) является статическим методом и strAstrB может быть null. Если оба значения равны null, метод возвращает значение 0 (ноль), указывающее, что strA и strB равно. Если только одно из значений равно null, метод считает, что значение, отличное от NULL, больше.

См. также раздел

Применяется к

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

Исходный код:
String.Comparison.cs
Исходный код:
String.Comparison.cs
Исходный код:
String.Comparison.cs
Исходный код:
String.Comparison.cs
Исходный код:
String.Comparison.cs

Сравнивает подстроки двух указанных String объектов, оценивая числовые значения соответствующих Char объектов в каждой подстроке.

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

Параметры

strA
String

Первая строка, используемая в сравнении.

indexA
Int32

Начальный индекс подстроки в strA.

strB
String

Вторая строка, используемая в сравнении.

indexB
Int32

Начальный индекс подстроки в strB.

length
Int32

Максимальное число символов в подстроках для сравнения.

Возвращаемое значение

32-разрядное целое число со знаком, указывающее лексическую связь между двумя сравнениями.

Ценность Состояние
Меньше нуля Подстрока strA меньше подстроки в strB.
Нуля Подстроки равны или length равны нулю.
Больше нуля Подстрока strA больше подстроки в strB.

Исключения

strA не null является и indexA больше strA.Length.

–или–

strB не null является и indexB больше strB.Length.

–или–

indexA, indexBили length отрицательный.

Примеры

В следующем примере показано, что CompareOrdinal и Compare используются различные заказы сортировки.

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

Комментарии

indexAПараметры indexBи length параметры должны быть ненегтивными.

Число символов, сравниваемых, меньше длины strA меньше indexA, длины strB меньше indexBи length.

Этот метод выполняет сравнение с учетом регистра с помощью правил порядковой сортировки. Дополнительные сведения о словах, строках и порядковых сортировках см. в разделе System.Globalization.CompareOptions. Чтобы выполнить сравнение без учета регистра с использованием правил порядковой сортировки, вызовите Compare(String, Int32, String, Int32, Int32, StringComparison) метод с заданным comparisonTypeаргументомStringComparison.OrdinalIgnoreCase.

Так как CompareOrdinal(String, String) является статическим методом и strAstrB может быть null. Если оба значения равны null, метод возвращает значение 0 (ноль), указывающее, что strA и strB равно. Если только одно из значений равно null, метод считает, что значение, отличное от NULL, больше.

См. также раздел

Применяется к