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

定義

將目前的 Tuple<T1,T2,T3,T4,T5,T6> 物件與指定的物件比較,並傳回可指出目前物件在排序次序中,是否在指定物件之前、之後或者相同之位置的整數。

 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

要與目前執行個體比較的物件。

傳回

帶正負號的整數,可指出此執行個體以及排序次序中 obj 的相對位置,如下表所示。

描述
負整數 這個執行個體位於 obj 之前。
這個執行個體和 obj 的排序位置相同。
正整數 這個執行個體位於 obj 之後。

實作

例外狀況

範例

下列範例會建立 物件的陣列 Tuple<T1,T2,T3,T4,T5,T6> ,其中包含 1960 到 2000 年美國中三個城市的人口資料。 六個元件包含城市名稱,後面接著 10 年之間的城市人口,從 1960 年到 2000 年。 此範例會以未排序的順序顯示陣列中每個 Tuple 的元件、排序陣列,然後呼叫 ToString 方法,以排序次序顯示每個 Tuple。 輸出顯示陣列已依名稱排序,也就是第一個元件。 請注意,此範例不會直接呼叫 IComparable.CompareTo(Object) 方法。 這個方法是由 Sort(Array) 陣列中每個元素的 方法隱含呼叫。

using System;

public class Example
{
   public static void Main()
   {
      // Create array of sextuple with population data for three U.S. 
      // cities, 1960-2000.
      Tuple<string, int, int, int, int, int>[] cities = 
          { Tuple.Create("Los Angeles", 2479015, 2816061, 2966850, 3485398, 3694820),
            Tuple.Create("New York", 7781984, 7894862, 7071639, 7322564, 8008278),  
            Tuple.Create("Chicago", 3550904, 3366957, 3005072, 2783726, 2896016) }; 
      
      // Display array in unsorted order.
      Console.WriteLine("In unsorted order:");
      foreach (var city in cities)
         Console.WriteLine(city.ToString());

      Console.WriteLine();
      
      Array.Sort(cities);
                           
      // Display array in sorted order.
      Console.WriteLine("In sorted order:");
      foreach (var city in cities)
         Console.WriteLine(city.ToString());
   }
}
// The example displays the following output:
//    In unsorted order:
//    (Los Angeles, 2479015, 2816061, 2966850, 3485398, 3694820)
//    (New York, 7781984, 7894862, 7071639, 7322564, 8008278)
//    (Chicago, 3550904, 3366957, 3005072, 2783726, 2896016)
//    
//    In sorted order:
//    (Chicago, 3550904, 3366957, 3005072, 2783726, 2896016)
//    (Los Angeles, 2479015, 2816061, 2966850, 3485398, 3694820)
//    (New York, 7781984, 7894862, 7071639, 7322564, 8008278)
open System

// Create array of sextuple with population data for three U.S. 
// cities, 1960-2000.
let cities = 
    [| Tuple.Create("Los Angeles", 2479015, 2816061, 2966850, 3485398, 3694820)
       Tuple.Create("New York", 7781984, 7894862, 7071639, 7322564, 8008278) 
       Tuple.Create("Chicago", 3550904, 3366957, 3005072, 2783726, 2896016) |]

// Display array in unsorted order.
printfn "In unsorted order:"
for city in cities do
    printfn $"{city}"

printfn ""

Array.Sort cities
                    
// Display array in sorted order.
printfn "In sorted order:"
for city in cities do
    printfn $"{city}"
// The example displays the following output:
//    In unsorted order:
//    (Los Angeles, 2479015, 2816061, 2966850, 3485398, 3694820)
//    (New York, 7781984, 7894862, 7071639, 7322564, 8008278)
//    (Chicago, 3550904, 3366957, 3005072, 2783726, 2896016)
//    
//    In sorted order:
//    (Chicago, 3550904, 3366957, 3005072, 2783726, 2896016)
//    (Los Angeles, 2479015, 2816061, 2966850, 3485398, 3694820)
//    (New York, 7781984, 7894862, 7071639, 7322564, 8008278)
Module Example
   Public Sub Main()
      ' Create array of sextuple with population data for three U.S. 
      ' cities, 1960-2000.
      Dim cities() = 
          { Tuple.Create("Los Angeles", 2479015, 2816061, 2966850, 3485398, 3694820),
            Tuple.Create("New York", 7781984, 7894862, 7071639, 7322564, 8008278),  
            Tuple.Create("Chicago", 3550904, 3366957, 3005072, 2783726, 2896016) } 
      
      ' Display array in unsorted order.
      Console.WriteLine("In unsorted order:")
      For Each city In cities
         Console.WriteLine(city.ToString())
      Next
      Console.WriteLine()
      
      Array.Sort(cities) 
                           
      ' Display array in sorted order.
      Console.WriteLine("In sorted order:")
      For Each city In cities
         Console.WriteLine(city.ToString())
      Next
   End Sub
End Module
' The example displays the following output:
'    In unsorted order:
'    (Los Angeles, 2479015, 2816061, 2966850, 3485398, 3694820)
'    (New York, 7781984, 7894862, 7071639, 7322564, 8008278)
'    (Chicago, 3550904, 3366957, 3005072, 2783726, 2896016)
'    
'    In sorted order:
'    (Chicago, 3550904, 3366957, 3005072, 2783726, 2896016)
'    (Los Angeles, 2479015, 2816061, 2966850, 3485398, 3694820)
'    (New York, 7781984, 7894862, 7071639, 7322564, 8008278)

備註

這個成員是明確介面成員實作, 只有在 Tuple<T1,T2,T3,T4,T5,T6> 執行個體轉換成 IComparable 介面時,才能使用這個成員。

這個方法提供 IComparable.CompareTo 類別的實作 Tuple<T1,T2,T3,T4,T5,T6> 。 雖然可以直接呼叫 方法,但最常由集合排序方法的預設多載呼叫,例如 Array.Sort(Array)SortedList.Add ,以排序集合的成員。

警告

方法 IComparable.CompareTo 適用于排序作業。 當比較的主要用途是判斷兩個物件是否相等時,不應該使用它。 若要判斷兩個物件是否相等,請呼叫 Tuple<T1,T2,T3,T4,T5,T6>.Equals(Object) 方法。

方法 IComparable.CompareTo(Object) 會使用預設物件比較子來比較每個元件。

適用於