String.IComparable.CompareTo(Object) Metoda

Definicja

Porównuje to wystąpienie z określonym Object i wskazuje, czy to wystąpienie poprzedza, następuje po lub występuje w tym samym położeniu w kolejności sortowania, jak określono Object .Compares this instance with a specified Object and indicates whether this instance precedes, follows, or appears in the same position in the sort order as the specified 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

Parametry

value
Object

Obiekt, który jest obliczany przez String .An object that evaluates to a String.

Zwraca

Int32

32-bitowa liczba całkowita ze znakiem, która wskazuje, czy to wystąpienie poprzedza, następuje po lub występuje w tym samym położeniu w kolejności sortowania jako value parametr.A 32-bit signed integer that indicates whether this instance precedes, follows, or appears in the same position in the sort order as the value parameter.

WartośćValueWarunekCondition
Mniej niż zeroLess than zeroTo wystąpienie poprzedza value .This instance precedes value.
ZeroZeroTo wystąpienie ma tę samą pozycję w kolejności sortowania, co value .This instance has the same position in the sort order as value.
Większe od zeraGreater than zeroTo wystąpienie jest następujące: value value nullThis instance follows value, or value is null.

Implementuje

Wyjątki

value nie jest String .value is not a String.

Przykłady

Poniższy przykład używa CompareTo metody z Object .The following example uses the CompareTo method with an Object. Ponieważ próbuje porównać String wystąpienie z TestClass obiektem, metoda zgłasza ArgumentException .Because it attempts to compare a String instance to a TestClass object, the method throws an ArgumentException.

using namespace System;

public ref class TestClass{};

int main()
{
   TestClass^ test = gcnew TestClass;
   array<Object^>^ objectsToCompare = { test, test->ToString(), 123,
                                        (123).ToString(), "some text",
                                        "Some Text" };
   String^ s = "some text";
   for each (Object^ objectToCompare in objectsToCompare) {
      try {
         Int32 i = s->CompareTo(objectToCompare);
         Console::WriteLine("Comparing '{0}' with '{1}': {2}",
                            s, objectToCompare, i);
      }
      catch (ArgumentException^ e) {
         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
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
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

Uwagi

value musi być String obiektem.value must be a String object.

Przestroga

CompareToMetoda została zaprojektowana głównie do użycia podczas sortowania lub alphabetizing operacji.The CompareTo method was designed primarily for use in sorting or alphabetizing operations. Nie należy jej używać, gdy głównym celem wywołania metody jest określenie, czy dwa ciągi są równoważne.It should not be used when the primary purpose of the method call is to determine whether two strings are equivalent. Aby określić, czy dwa ciągi są równoważne, wywołaj Equals metodę.To determine whether two strings are equivalent, call the Equals method.

Ta metoda przeprowadza porównanie wyrazów (wielkość liter i z uwzględnieniem ustawień kulturowych) przy użyciu bieżącej kultury.This method performs a word (case-sensitive and culture-sensitive) comparison using the current culture. Więcej informacji na temat wyrazów, ciągów i liczb porządkowych można znaleźć w temacie System.Globalization.CompareOptions .For more information about word, string, and ordinal sorts, see System.Globalization.CompareOptions.

Aby uzyskać więcej informacji o zachowaniu tej metody, zobacz sekcję Uwagi w String.Compare(String, String) metodzie.For more information about the behavior of this method, see the Remarks section of the String.Compare(String, String) method.

Dotyczy