Tuple<T1,T2,T3>.IComparable.CompareTo(Object) Metodo
Definizione
Importante
Alcune informazioni sono relative alla release non definitiva del prodotto, che potrebbe subire modifiche significative prima della release definitiva. Microsoft non riconosce alcuna garanzia, espressa o implicita, in merito alle informazioni qui fornite.
Confronta l'oggetto Tuple<T1,T2,T3> corrente con un oggetto specificato e restituisce un intero che indica se l'oggetto corrente precede, segue o si trova nella stessa posizione dell'oggetto specificato nell'ordinamento.
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
Parametri
- obj
- Object
Oggetto da confrontare con l'istanza corrente.
Restituisce
Intero con segno che indica la posizione relativa di questa istanza e di obj
nell'ordinamento, come illustrato nella tabella seguente.
Valore | Descrizione |
---|---|
Intero negativo | Questa istanza precede obj .
|
Zero | Questa istanza si trova nella stessa posizione di obj nell'ordinamento.
|
Intero positivo | L'istanza segue obj .
|
Implementazioni
Eccezioni
obj
non è un oggetto Tuple<T1,T2,T3>.
Esempio
Nell'esempio seguente viene creata una matrice di Tuple<T1,T2,T3> oggetti i cui componenti sono costituiti dal nome di uno studente, dal punteggio medio del test e dal numero di test. Visualizza i componenti di ogni tupla nella matrice in ordine non ordinato, ordina la matrice e quindi chiama ToString per visualizzare ogni tupla in ordine ordinato. L'output mostra che la matrice è stata ordinata in base al primo componente. Si noti che l'esempio non chiama direttamente il Tuple<T1,T2,T3>.IComparable.CompareTo metodo . Questo metodo viene chiamato in modo implicito dal Sort(Array) metodo per ogni elemento nella matrice.
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)
Commenti
Questo membro è un’implementazione esplicita di un membro di interfaccia. Può essere utilizzato solo quando si esegue il cast dell'istanza Tuple<T1,T2,T3> a un'interfaccia IComparable.
Questo metodo fornisce l'implementazione IComparable.CompareTo per la Tuple<T1,T2,T3> classe . Anche se il metodo può essere chiamato direttamente, viene chiamato in genere dagli overload predefiniti dei metodi di ordinamento delle raccolte, ad esempio Array.Sort(Array) e SortedList.Add, per ordinare i membri di una raccolta.
Attenzione
Il Tuple<T1,T2,T3>.IComparable.CompareTo metodo è destinato all'uso nelle operazioni di ordinamento. Non deve essere utilizzato quando lo scopo principale di un confronto è determinare se due oggetti sono uguali. Per determinare se due oggetti sono uguali, chiamare il Equals metodo .
Il Tuple<T1,T2,T3>.IComparable.CompareTo metodo usa l'operatore di confronto dell'oggetto predefinito per confrontare ogni componente.