Tuple<T1,T2,T3>.IComparable.CompareTo(Object) 方法
定義
重要
部分資訊涉及發行前產品,在發行之前可能會有大幅修改。 Microsoft 對此處提供的資訊,不做任何明確或隱含的瑕疵擔保。
將目前的 Tuple<T1,T2,T3> 物件與指定的物件比較,並傳回可指出目前物件在排序次序中,是否在指定物件之前、之後或者相同之位置的整數。
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> 物件。
範例
下列範例會建立物件的陣列 Tuple<T1,T2,T3> ,其元件是由學生的名稱、平均測試分數和測試數目所組成。 它會以未排序的順序顯示陣列中每個 Tuple 的元件、排序陣列,然後呼叫 ToString 以排序次序顯示每個 Tuple。 輸出顯示陣列已依其第一個元件排序。 請注意,此範例不會直接呼叫 Tuple<T1,T2,T3>.IComparable.CompareTo 方法。 這個方法是由 陣列中每個元素的 方法隱含 Sort(Array) 呼叫。
using System;
public class Example
{
public static void Main()
{
Tuple<string, double, int>[] scores =
{ Tuple.Create("Jack", 78.8, 8),
Tuple.Create("Abbey", 92.1, 9),
Tuple.Create("Dave", 88.3, 9),
Tuple.Create("Sam", 91.7, 8),
Tuple.Create("Ed", 71.2, 5),
Tuple.Create("Penelope", 82.9, 8),
Tuple.Create("Linda", 99.0, 9),
Tuple.Create("Judith", 84.3, 9) };
Console.WriteLine("The values in unsorted order:");
foreach (var score in scores)
Console.WriteLine(score.ToString());
Console.WriteLine();
Array.Sort(scores);
Console.WriteLine("The values in sorted order:");
foreach (var score in scores)
Console.WriteLine(score.ToString());
}
}
// The example displays the following output;
// The values in unsorted order:
// (Jack, 78.8, 8)
// (Abbey, 92.1, 9)
// (Dave, 88.3, 9)
// (Sam, 91.7, 8)
// (Ed, 71.2, 5)
// (Penelope, 82.9, 8)
// (Linda, 99, 9)
// (Judith, 84.3, 9)
//
// The values in sorted order:
// (Abbey, 92.1, 9)
// (Dave, 88.3, 9)
// (Ed, 71.2, 5)
// (Jack, 78.8, 8)
// (Judith, 84.3, 9)
// (Linda, 99, 9)
// (Penelope, 82.9, 8)
// (Sam, 91.7, 8)
open System
let scores =
[| Tuple.Create("Jack", 78.8, 8)
Tuple.Create("Abbey", 92.1, 9)
Tuple.Create("Dave", 88.3, 9)
Tuple.Create("Sam", 91.7, 8)
Tuple.Create("Ed", 71.2, 5)
Tuple.Create("Penelope", 82.9, 8)
Tuple.Create("Linda", 99.0, 9)
Tuple.Create("Judith", 84.3, 9) |]
printfn "The values in unsorted order:"
for score in scores do
printfn $"{score}"
printfn ""
Array.Sort scores
printfn "The values in sorted order"
for score in scores do
printfn $"{score}"
// The example displays the following output
// The values in unsorted order:
// (Jack, 78.8, 8)
// (Abbey, 92.1, 9)
// (Dave, 88.3, 9)
// (Sam, 91.7, 8)
// (Ed, 71.2, 5)
// (Penelope, 82.9, 8)
// (Linda, 99, 9)
// (Judith, 84.3, 9)
//
// The values in sorted order:
// (Abbey, 92.1, 9)
// (Dave, 88.3, 9)
// (Ed, 71.2, 5)
// (Jack, 78.8, 8)
// (Judith, 84.3, 9)
// (Linda, 99, 9)
// (Penelope, 82.9, 8)
// (Sam, 91.7, 8)
Module Example
Public Sub Main()
Dim scores() =
{ Tuple.Create("Jack", 78.8, 8),
Tuple.Create("Abbey", 92.1, 9),
Tuple.Create("Dave", 88.3, 9),
Tuple.Create("Sam", 91.7, 8),
Tuple.Create("Ed", 71.2, 5),
Tuple.Create("Penelope", 82.9, 8),
Tuple.Create("Linda", 99.0, 9),
Tuple.Create("Judith", 84.3, 9) }
Console.WriteLine("The values in unsorted order:")
For Each score In scores
Console.WriteLine(score.ToString())
Next
Console.WriteLine()
Array.Sort(scores)
Console.WriteLine("The values in sorted order:")
For Each score In scores
Console.WriteLine(score.ToString())
Next
End Sub
End Module
' The example displays the following output;
' The values in unsorted order:
' (Jack, 78.8, 8)
' (Abbey, 92.1, 9)
' (Dave, 88.3, 9)
' (Sam, 91.7, 8)
' (Ed, 71.2, 5)
' (Penelope, 82.9, 8)
' (Linda, 99, 9)
' (Judith, 84.3, 9)
'
' The values in sorted order:
' (Abbey, 92.1, 9)
' (Dave, 88.3, 9)
' (Ed, 71.2, 5)
' (Jack, 78.8, 8)
' (Judith, 84.3, 9)
' (Linda, 99, 9)
' (Penelope, 82.9, 8)
' (Sam, 91.7, 8)
備註
這個成員是明確介面成員實作, 只有在 Tuple<T1,T2,T3> 執行個體轉換成 IComparable 介面時,才能使用這個成員。
這個方法提供 IComparable.CompareTo 類別的實作 Tuple<T1,T2,T3> 。 雖然可以直接呼叫 方法,但最常由集合排序方法的預設多載呼叫,例如 Array.Sort(Array) 和 SortedList.Add ,以排序集合的成員。
警告
方法 Tuple<T1,T2,T3>.IComparable.CompareTo 適用于排序作業。 當比較的主要用途是判斷兩個物件是否相等時,就不應該使用它。 若要判斷兩個物件是否相等,請呼叫 Equals 方法。
方法 Tuple<T1,T2,T3>.IComparable.CompareTo 會使用預設物件比較子來比較每個元件。