Tuple<T1,T2,T3,T4,T5,T6,T7>.IComparable.CompareTo(Object) 方法
定義
重要
部分資訊涉及發行前產品,在發行之前可能會有大幅修改。 Microsoft 對此處提供的資訊,不做任何明確或隱含的瑕疵擔保。
將目前的 Tuple<T1,T2,T3,T4,T5,T6,T7> 物件與指定的物件比較,並傳回可指出目前物件在排序次序中,是否在指定物件之前、之後或者相同之位置的整數。
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 之後。
|
實作
例外狀況
obj
不是 Tuple<T1,T2,T3,T4,T5,T6,T7> 物件。
範例
下列範例會建立 物件的陣列 Tuple<T1,T2,T3,T4,T5,T6,T7> ,其中包含 1950 到 2000 年美國三個城市的人口資料。 七個元件包含城市名稱,後面接著 10 年之間的城市人口,從 1950 年到 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, 1950-2000.
Tuple<string, int, int, int, int, int, int>[] cities =
{ Tuple.Create("Los Angeles", 1970358, 2479015, 2816061, 2966850, 3485398, 3694820),
Tuple.Create("New York", 7891957, 7781984, 7894862, 7071639, 7322564, 8008278),
Tuple.Create("Chicago", 3620962, 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, 1970358, 2479015, 2816061, 2966850, 3485398, 3694820)
// (New York, 7891957, 7781984, 7894862, 7071639, 7322564, 8008278)
// (Chicago, 3620962, 3550904, 3366957, 3005072, 2783726, 2896016)
//
// In sorted order:
// (Chicago, 3620962, 3550904, 3366957, 3005072, 2783726, 2896016)
// (Los Angeles, 1970358, 2479015, 2816061, 2966850, 3485398, 3694820)
// (New York, 7891957, 7781984, 7894862, 7071639, 7322564, 8008278)
open System
// Create array of sextuple with population data for three U.S.
// cities, 1950-2000.
let cities =
[| Tuple.Create("Los Angeles", 1970358, 2479015, 2816061, 2966850, 3485398, 3694820)
Tuple.Create("New York", 7891957, 7781984, 7894862, 7071639, 7322564, 8008278)
Tuple.Create("Chicago", 3620962, 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, 1970358, 2479015, 2816061, 2966850, 3485398, 3694820)
// (New York, 7891957, 7781984, 7894862, 7071639, 7322564, 8008278)
// (Chicago, 3620962, 3550904, 3366957, 3005072, 2783726, 2896016)
//
// In sorted order:
// (Chicago, 3620962, 3550904, 3366957, 3005072, 2783726, 2896016)
// (Los Angeles, 1970358, 2479015, 2816061, 2966850, 3485398, 3694820)
// (New York, 7891957, 7781984, 7894862, 7071639, 7322564, 8008278)
Module Example
Public Sub Main()
' Create array of sextuple with population data for three U.S.
' cities, 1950-2000.
Dim cities() = _
{ Tuple.Create("Los Angeles", 1970358, 2479015, 2816061, 2966850, 3485398, 3694820),
Tuple.Create("New York", 7891957, 7781984, 7894862, 7071639, 7322564, 8008278),
Tuple.Create("Chicago", 3620962, 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, 1970358, 2479015, 2816061, 2966850, 3485398, 3694820)
' (New York, 7891957, 7781984, 7894862, 7071639, 7322564, 8008278)
' (Chicago, 3620962, 3550904, 3366957, 3005072, 2783726, 2896016)
'
' In sorted order:
' (Chicago, 3620962, 3550904, 3366957, 3005072, 2783726, 2896016)
' (Los Angeles, 1970358, 2479015, 2816061, 2966850, 3485398, 3694820)
' (New York, 7891957, 7781984, 7894862, 7071639, 7322564, 8008278)
備註
這個成員是明確介面成員實作, 只有在 Tuple<T1,T2,T3,T4,T5,T6,T7> 執行個體轉換成 IComparable 介面時,才能使用這個成員。
這個方法提供 IComparable.CompareTo 類別的實作 Tuple<T1,T2,T3,T4,T5,T6,T7> 。 雖然可以直接呼叫 方法,但最常由集合排序方法的預設多載呼叫,例如 Array.Sort(Array) 和 SortedList.Add ,以排序集合的成員。
警告
方法 IComparable.CompareTo 適用于排序作業。 當比較的主要用途是判斷兩個物件是否相等時,不應該使用它。 若要判斷兩個物件是否相等,請呼叫 Tuple<T1,T2,T3,T4,T5,T6,T7>.Equals(Object) 方法。
這個方法會使用預設物件比較子來比較每個元件。