String.CompareOrdinal Метод
Определение
Важно!
Некоторые сведения относятся к предварительной версии продукта, в которую до выпуска могут быть внесены существенные изменения. Майкрософт не предоставляет никаких гарантий, явных или подразумеваемых, относительно приведенных здесь сведений.
Перегрузки
| 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
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 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'.
'
Комментарии
Этот метод выполняет сравнение с учетом регистра с помощью правил порядковой сортировки. Дополнительные сведения о сортировке слов, строк и порядковых номеров см. в разделе System.Globalization.CompareOptions. Чтобы выполнить сравнение без учета регистра с помощью порядковых правил сортировки, вызовите Compare(String, String, StringComparison) метод с аргументом comparisonType , равным StringComparison.OrdinalIgnoreCase.
Потому что CompareOrdinal(String, String) является статическим методом, strA а strB может иметь значение 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
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 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
Комментарии
Параметры indexA, indexBи length должны быть неагтивными.
Сравниваемое число символов равно меньшему значению длины strA меньше indexA, длине strB меньше indexBи length.
Этот метод выполняет сравнение с учетом регистра с помощью правил порядковой сортировки. Дополнительные сведения о сортировке слов, строк и порядковых номеров см. в разделе System.Globalization.CompareOptions. Чтобы выполнить сравнение без учета регистра с помощью порядковых правил сортировки, вызовите Compare(String, Int32, String, Int32, Int32, StringComparison) метод с аргументом comparisonType , равным StringComparison.OrdinalIgnoreCase.
Потому что CompareOrdinal(String, String) является статическим методом, strA а strB может иметь значение null. Если оба значения имеют значение null, метод возвращает значение 0 (ноль), что указывает, что strA и strB равны. Если только одно из значений равно null, метод считает, что значение, отличное от NULL, больше.