Tuple<T1>.IComparable.CompareTo(Object) Yöntem

Tanım

Geçerli Tuple<T1> nesneyi belirtilen bir nesneyle karşılaştırır ve geçerli nesnenin sıralama düzeninde belirtilen nesneden önce, sonra veya aynı konumda olup olmadığını belirten bir tamsayı döndürür.

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

Parametreler

obj
Object

Geçerli örnek ile karşılaştırılacak nesne.

Döndürülenler

Int32

Aşağıdaki tabloda gösterildiği gibi, bu örneğin göreli konumunu ve obj sıralama düzeninde gösteren imzalı tamsayı.

Değer Açıklama
Negatif bir tamsayı Bu örnek öncesindedir obj.
Sıfır Bu örnek ve obj sıralama düzeninde aynı konuma sahiptir.
Pozitif bir tamsayı Bu örnek aşağıdaki gibidir obj.

Uygulamalar

Özel durumlar

obj nesne Tuple<T1> değildir.

Örnekler

Aşağıdaki örnek, bileşeni değer olan Double bir tekil dizi oluşturur. Her tanımlama grubu bileşeninin değerini sıralanmamış düzende görüntüler, diziyi sıralar ve sonra değerleri sıralı düzende görüntüler. Örneğin yöntemini doğrudan çağırmadığını Tuple<T1>.IComparable.CompareTo unutmayın. Bu yöntem, dizideki Sort(Array) her öğe için yöntemi tarafından örtük olarak çağrılır.

using System;

class Example
{
   static void Main()
   {
      Tuple<Double>[] values = { Tuple.Create(13.54),
                                 Tuple.Create(Double.NaN),
                                 Tuple.Create(-189.42993),
                                 Tuple.Create(Double.PositiveInfinity),
                                 Tuple.Create(Double.Epsilon),
                                 Tuple.Create(1.934E-17),
                                 Tuple.Create(Double.NegativeInfinity),
                                 Tuple.Create(-0.000000000003588),
                                 null };
      Console.WriteLine("The values in unsorted order:");
      foreach (var value in values)
         if (value != null)
            Console.WriteLine("   {0}", value.Item1);
         else
            Console.WriteLine("   <null>");
      Console.WriteLine();

      Array.Sort(values);

      Console.WriteLine("The values in sorted order:");
      foreach (var value in values)
         if (value != null)
            Console.WriteLine("   {0}", value.Item1);
         else
            Console.WriteLine("   <null>");
   }
}
// The example displays the following output:
//      The values in unsorted order:
//         13.54
//         NaN
//         -189.42993
//         Infinity
//         4.94065645841247E-324
//         1.934E-17
//         -Infinity
//         -3.588E-12
//
//      The values in sorted order:
//         NaN
//         -Infinity
//         -189.42993
//         -3.588E-12
//         4.94065645841247E-324
//         1.934E-17
//         13.54
//         Infinity
open System

let values = 
    [| Tuple.Create 13.54
       Tuple.Create Double.NaN
       Tuple.Create -189.42993
       Tuple.Create Double.PositiveInfinity
       Tuple.Create Double.Epsilon
       Tuple.Create 1.934E-17
       Tuple.Create Double.NegativeInfinity
       Tuple.Create -0.000000000003588
       null |]
printfn "The values in unsorted order:"
for value in values do
    printfn $"   %A{value.Item1}"
printfn ""

Array.Sort values

printfn "The values sorted in descending order:"
for value in values do
    printfn $"   %A{value.Item1}"
// The example displays the following output:
//      The values in unsorted order:
//         13.54
//         NaN
//         -189.42993
//         Infinity
//         4.94065645841247E-324
//         1.934E-17
//         -Infinity
//         -3.588E-12
//
//      The values in sorted order:
//         NaN
//         -Infinity
//         -189.42993
//         -3.588E-12
//         4.94065645841247E-324
//         1.934E-17
//         13.54
//         Infinity
Module Example
    Sub Main()
        Dim values() = { Tuple.Create(13.54),
                         Tuple.Create(Double.NaN),
                         Tuple.Create(-189.42993),
                         Tuple.Create(Double.PositiveInfinity),
                         Tuple.Create(Double.Epsilon),
                         Tuple.Create(1.934E-17),
                         Tuple.Create(Double.NegativeInfinity),
                         Tuple.Create(-0.000000000003588),
                         Nothing}

        Console.WriteLine("The values in unsorted order:")
        For Each value In values
            If value IsNot Nothing Then
                Console.WriteLine("   {0}", value.Item1)
            Else
                Console.WriteLine("   <null>")
            End If
        Next
        Console.WriteLine()

        Array.Sort(values)

        Console.WriteLine("The values in sorted order:")
        For Each value In values
            If value IsNot Nothing Then
                Console.WriteLine("   {0}", value.Item1)
            Else
                Console.WriteLine("   <null>")
            End If
        Next
    End Sub
End Module
' The example displays the following output:
'      The values in unsorted order:
'         13.54
'         NaN
'         -189.42993
'         Infinity
'         4.94065645841247E-324
'         1.934E-17
'         -Infinity
'         -3.588E-12
'
'      The values in sorted order:
'         NaN
'         -Infinity
'         -189.42993
'         -3.588E-12
'         4.94065645841247E-324
'         1.934E-17
'         13.54
'         Infinity

Açıklamalar

Bu üye, açık bir arabirim üyesi uygulamasıdır. Yalnızca örnek bir IComparable arabirime Tuple<T1> yayınlandığında kullanılabilir.

Bu yöntem sınıfı için Tuple<T1> uygulamayı sağlarIComparable.CompareTo. Yöntemi doğrudan çağrılsa da, bir koleksiyonun üyelerini sıralamak için en yaygın olarak ve SortedList.Addgibi Array.Sort(Array) koleksiyon sıralama yöntemlerinin varsayılan aşırı yüklemeleri tarafından çağrılır.

Dikkat

Tuple<T1>.IComparable.CompareTo yöntemi, sıralama işlemlerinde kullanılmak üzere tasarlanmıştır. Karşılaştırmanın asıl amacı iki nesnenin eşit olup olmadığını belirlemek olduğunda kullanılmamalıdır. İki nesnenin eşit olup olmadığını belirlemek için yöntemini çağırın Equals .

yöntemi varsayılan Tuple<T1>.IComparable.CompareTo nesne karşılaştırıcısını kullanır.

Şunlara uygulanır

Ayrıca bkz.