Данная статья переведена с помощью средств машинного перевода. Чтобы просмотреть ее на английском языке, установите флажок Английский. Вы также можете просматривать английский текст во всплывающем окне, наводя указатель мыши на переведенный текст.
Перевод
Английский

Метод String.CompareTo (Object)

 

Опубликовано: Октябрь 2016

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

Пространство имен:   System
Сборка:  mscorlib (в mscorlib.dll)

public int CompareTo(
	object value
)

Параметры

value
Type: System.Object

Объект, имеющий значение String.

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

Type: System.Int32

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

Значение

Условие

Меньше нуля

Данный экземпляр предшествует параметру value.

Нуль

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

Больше нуля

Данный экземпляр стоит после параметра value.

-или-

Свойство value имеет значение null.

Exception Condition
ArgumentException

value не является объектом String.

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

System_CAPS_cautionВнимание!

CompareTo Метод предназначен главным образом для использования при сортировке или операции сортировки в алфавитном порядке. Он не должен использоваться, если основная цель вызова метода — определить, равны ли две строки. Чтобы определить, равны ли две строки, вызовите Equals метод.

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

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

Заметки к вызывающим объектам:

Наборы символов включают игнорируемые символы. CompareTo Метод не учитывает такие символы при сравнении с учетом языка и региональных параметров. Например, следующий код выполняется на .NET Framework 4 или более поздней версии, сравнение «animal» с «ani почты» (с помощью мягкий перенос или 00AD U +) указывает, что две строки равны.

using System;

public class Example
{
   public static void Main()
   {
      string s1 = "ani\u00ADmal";
      object o1 = "animal";

      Console.WriteLine("Comparison of '{0}' and '{1}': {2}", 
                        s1, o1, s1.CompareTo(o1));
   }
}
// The example displays the following output:
//       Comparison of 'ani-mal' and 'animal': 0

Для распознавания игнорируемые символы в сравнения строк, вызватьCompareOrdinal(String, 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

.NET Framework
Доступно с 1.1
Silverlight
Доступно с 2.0
Windows Phone Silverlight
Доступно с 7.0
Вернуться в начало
Показ: