String.IComparable.CompareTo(Object) Метод

Определение

Сравнивает этот экземпляр с указанным Object и указывает, предшествует ли этот экземпляр, следует или отображается в той же позиции в порядке сортировки, что и указанный Object.

 virtual int System.IComparable.CompareTo(System::Object ^ value) = IComparable::CompareTo;
int IComparable.CompareTo(object value);
abstract member System.IComparable.CompareTo : obj -> int
override this.System.IComparable.CompareTo : obj -> int
Function CompareTo (value As Object) As Integer Implements IComparable.CompareTo

Параметры

value
Object

Объект, который вычисляет значение String.

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

32-разрядное целое число со знаком, указывающее, предшествует ли этот экземпляр, следует или отображается в той же позиции в порядке сортировки, что value и параметр.

ЦенностьCondition
Меньше нуляЭтот экземпляр предшествует value.
НольЭтот экземпляр имеет ту же позицию в порядке сортировки, что valueи .
Больше нуляЭтот экземпляр следует или valuevalue имеет значение null.

Реализации

Исключения

value не Stringявляется .

Примеры

В следующем примере используется CompareTo метод с параметром Object. Так как он пытается сравнить String экземпляр с TestClass объектом, метод создает исключение ArgumentException.

using System;

public class TestClass
{}

public class Example
{
   public static void Main()
   {
      var test = new TestClass();
      Object[] objectsToCompare = { test, test.ToString(), 123,
                                    123.ToString(), "some text",
                                    "Some Text" };
      string s = "some text";
      foreach (var objectToCompare in objectsToCompare) {
         try {
            int i = s.CompareTo(objectToCompare);
            Console.WriteLine("Comparing '{0}' with '{1}': {2}",
                              s, objectToCompare, i);
         }
         catch (ArgumentException) {
            Console.WriteLine("Bad argument: {0} (type {1})",
                              objectToCompare,
                              objectToCompare.GetType().Name);
         }
      }
   }
}
// The example displays the following output:
//    Bad argument: TestClass (type TestClass)
//    Comparing 'some text' with 'TestClass': -1
//    Bad argument: 123 (type Int32)
//    Comparing 'some text' with '123': 1
//    Comparing 'some text' with 'some text': 0
//    Comparing 'some text' with 'Some Text': -1
open System

type TestClass() = class end

let test = TestClass()
let objectsToCompare: obj list =
    [ test; string test; 123
      string 123; "some text"
      "Some Text" ]
let s = "some text"
for objectToCompare in objectsToCompare do
    try
        let i = s.CompareTo objectToCompare
        printfn $"Comparing '{s}' with '{objectToCompare}': {i}"
    with :? ArgumentException ->
        printfn $"Bad argument: {objectToCompare} (type {objectToCompare.GetType().Name})"
// The example displays the following output:
//    Bad argument: TestClass (type TestClass)
//    Comparing 'some text' with 'TestClass': -1
//    Bad argument: 123 (type Int32)
//    Comparing 'some text' with '123': 1
//    Comparing 'some text' with 'some text': 0
//    Comparing 'some text' with 'Some Text': -1
Public Class TestClass
End Class 


Public Class Example
   Public Shared Sub Main()
      Dim test As New TestClass()
      Dim objectsToCompare() As Object = { test, test.ToString(), 123,
                                           123.ToString(), "some text",
                                           "Some Text" }
      Dim s As String = "some text"
      For Each objectToCompare In objectsToCompare
         Try
            Dim i As Integer = s.CompareTo(objectToCompare)
            Console.WriteLine("Comparing '{0}' with '{1}': {2}",
                              s, objectToCompare, i)
         Catch e As ArgumentException
            Console.WriteLine("Bad argument: {0} (type {1})",
                              objectToCompare,
                              objectToCompare.GetType().Name)
         End Try
      Next
   End Sub 
End Class 
' The example displays the following output:
'       Bad argument: TestClass (type TestClass)
'       Comparing 'some text' with 'TestClass': -1
'       Bad argument: 123 (type Int32)
'       Comparing 'some text' with '123': 1
'       Comparing 'some text' with 'some text': 0
'       Comparing 'some text' with 'Some Text': -1

Комментарии

value должен быть String объектом.

Предостережение

Метод CompareTo был разработан в основном для использования в операциях сортировки или алфавитизации. Его не следует использовать, если основное назначение вызова метода заключается в определении эквивалентности двух строк. Чтобы определить, эквивалентны ли две строки, вызовите Equals метод.

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

Дополнительные сведения о поведении этого метода см. в разделе String.Compare(String, String) "Примечания" метода.

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