String.IComparable.CompareTo(Object) Metod

Definition

Jämför den här instansen med en angiven Object och anger om den här instansen föregår, följer eller visas i samma position i sorteringsordningen som den angivna 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

Parametrar

value
Object

Ett objekt som utvärderas till en String.

Returer

Ett 32-bitars signerat heltal som anger om den här instansen föregår, följer eller visas i samma position i sorteringsordningen som parametern value .

ValueTillstånd
Mindre än nollDen här instansen föregår value.
NollDen här instansen har samma position i sorteringsordningen som value.
Större än nollDen här instansen följer value, eller value är null.

Implementeringar

Undantag

value är inte en String.

Exempel

I följande exempel används CompareTo metoden med en Object. Eftersom den försöker jämföra en String instans med ett TestClass objekt genererar metoden en 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

Kommentarer

value måste vara ett String objekt.

Caution

Metoden CompareTo har främst utformats för sortering eller alfabetisering. Det bör inte användas när det primära syftet med metodanropet är att avgöra om två strängar är likvärdiga. Om du vill avgöra om två strängar är likvärdiga anropar du Equals metoden.

Den här metoden utför en ordjämförelse (skiftlägeskänslig och kulturkänslig) med hjälp av den aktuella kulturen. Mer information om ord, sträng och ordningstal finns i System.Globalization.CompareOptions.

Mer information om beteendet för den här metoden finns i avsnittet Kommentarer i String.Compare(String, String) metoden.

Gäller för