Tuple<T1,T2,T3,T4,T5,T6,T7,TRest>.IComparable.CompareTo(Object) 方法

定义

比较当前 Tuple<T1,T2,T3,T4,T5,T6,T7,TRest> 对象与指定对象,并返回一个整数,该整数指示当前对象在排序顺序中的位置:是在指定对象之前、之后还是在与指定对象相同的位置。

 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

参数

obj
Object

要与当前实例进行比较的对象。

返回

Int32

一个带符号整数,指示此实例和 obj 在排序顺序中的相对位置,如下表所示。

说明
负整数 此实例位于 obj 之前。
此实例在排序顺序中的位置与 obj 相同。
正整数 此实例位于 obj 之后。

实现

例外

示例

以下示例创建一个八进制数组,其组件是包含一系列质数的整数。 该示例按未排序顺序显示数组的元素,对数组进行排序,然后按排序顺序显示数组。 输出显示数组已按 Item1元组的第一个组件进行排序。 请注意,该示例不直接调用 IComparable.CompareTo(Object) 该方法。 此方法由 Sort(Array) 数组中每个元素的方法隐式调用。

using System;

public class Example
{
   public static void Main()
   {
      // Create array of 8-tuple objects containing prime numbers.
      Tuple<Int32, Int32, Int32, Int32, Int32, Int32, Int32, Tuple<Int32>>[] primes = 
                     { new Tuple<Int32, Int32, Int32, Int32, Int32, Int32, Int32, 
                           Tuple<Int32>>(2, 3, 5, 7, 11, 13, 17, new Tuple<Int32>(19)),
                       new Tuple<Int32, Int32, Int32, Int32, Int32, Int32, Int32, 
                           Tuple<Int32>>(23, 29, 31, 37, 41, 43, 47, new Tuple<Int32>(55)), 
                       new Tuple<Int32, Int32, Int32, Int32, Int32, Int32, Int32, 
                           Tuple<Int32>>(3, 2, 5, 7, 11, 13, 17, new Tuple<Int32>(19)) };
      // Display 8-tuples in unsorted order.
      foreach (var prime in primes)
         Console.WriteLine(prime.ToString());
      Console.WriteLine();
      
      // Sort the array and display its 8-tuples.
      Array.Sort(primes);
      foreach (var prime in primes)
         Console.WriteLine(prime.ToString());
   }
}
// The example displays the following output:
//       (2, 3, 5, 7, 11, 13, 17, 19)
//       (23, 29, 31, 37, 41, 43, 47, 55)
//       (3, 2, 5, 7, 11, 13, 17, 19)
//       
//       (2, 3, 5, 7, 11, 13, 17, 19)
//       (3, 2, 5, 7, 11, 13, 17, 19)
//       (23, 29, 31, 37, 41, 43, 47, 55)
open System

// Create array of 8-tuple objects containing prime numbers.
let primes = 
    [| new Tuple<Int32, Int32, Int32, Int32, Int32, Int32, Int32, 
           Tuple<Int32>>(2, 3, 5, 7, 11, 13, 17, new Tuple<Int32>(19))
       new Tuple<Int32, Int32, Int32, Int32, Int32, Int32, Int32,
           Tuple<Int32>>(23, 29, 31, 37, 41, 43, 47, new Tuple<Int32>(55)) 
       new Tuple<Int32, Int32, Int32, Int32, Int32, Int32, Int32,
           Tuple<Int32>>(3, 2, 5, 7, 11, 13, 17, new Tuple<Int32>(19)) |]
// Display 8-tuples in unsorted order.
for prime in primes do
    printfn $"{prime}"
printfn ""

// Sort the array and display its 8-tuples.
Array.Sort primes
for prime in primes do
    printfn $"{prime}"
// The example displays the following output:
//       (2, 3, 5, 7, 11, 13, 17, 19)
//       (23, 29, 31, 37, 41, 43, 47, 55)
//       (3, 2, 5, 7, 11, 13, 17, 19)
//       
//       (2, 3, 5, 7, 11, 13, 17, 19)
//       (3, 2, 5, 7, 11, 13, 17, 19)
//       (23, 29, 31, 37, 41, 43, 47, 55)
Module Example
   Public Sub Main()
      ' Create array of 8-tuple objects containing prime numbers.
      Dim primes() = { New Tuple(Of Int32, Int32, Int32, Int32, Int32, Int32, Int32, 
                           Tuple(Of Int32)) (2, 3, 5, 7, 11, 13, 17, 
                           New Tuple(Of Int32)(19)),
                       New Tuple(Of Int32, Int32, Int32, Int32, Int32, Int32, Int32, 
                           Tuple(Of Int32)) (23, 29, 31, 37, 41, 43, 47, 
                           New Tuple(Of Int32)(55)), 
                       New Tuple(Of Int32, Int32, Int32, Int32, Int32, Int32, Int32, 
                           Tuple(Of Int32)) (3, 2, 5, 7, 11, 13, 17, 
                           New Tuple(Of Int32)(19)) }
      ' Display 8-tuples in unsorted order.
      For Each prime In primes
         Console.WriteLine(prime.ToString())
      Next
      Console.WriteLine()
      
      ' Sort the array and display its 8-tuples.
      Array.Sort(primes)
      For Each prime In primes
         Console.WriteLine(prime.ToString())
      Next
   End Sub
End Module
' The example displays the following output:
'       (2, 3, 5, 7, 11, 13, 17, 19)
'       (23, 29, 31, 37, 41, 43, 47, 55)
'       (3, 2, 5, 7, 11, 13, 17, 19)
'       
'       (2, 3, 5, 7, 11, 13, 17, 19)
'       (3, 2, 5, 7, 11, 13, 17, 19)
'       (23, 29, 31, 37, 41, 43, 47, 55)

注解

此成员是显式接口成员的实现。 它只能在 Tuple<T1,T2,T3,T4,T5,T6,T7,TRest> 实例被强制转换为 IComparable 接口时使用。

此方法提供 IComparable.CompareToTuple<T1,T2,T3,T4,T5,T6,T7,TRest> 的实现。 尽管可以直接调用该方法,但通常由集合排序方法的默认重载(例如 Array.Sort(Array) 以及 SortedList.Add)对集合的成员进行排序。

注意

该方法 IComparable.CompareTo 用于排序操作。 当比较的主要用途是确定两个对象是否相等时,不应使用它。 若要确定两个对象是否相等,请调用 Tuple<T1,T2,T3,T4,T5,T6,T7,TRest>.Equals(Object) 该方法。

此方法使用默认对象比较器来比较每个组件。

适用于