Tuple<T1,T2>.IComparable.CompareTo(Object) Método
Definição
Importante
Algumas informações se referem a produtos de pré-lançamento que podem ser substancialmente modificados antes do lançamento. A Microsoft não oferece garantias, expressas ou implícitas, das informações aqui fornecidas.
Compara o objeto Tuple<T1,T2> atual a um objeto especificado e retorna um inteiro que indica se o objeto atual está antes, depois ou na mesma posição que o objeto especificado na ordem de classificação.
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
Parâmetros
- obj
- Object
Um objeto a ser comparado com a instância atual.
Retornos
Um inteiro assinado que indica a posição relativa dessa instância e obj
na ordem de classificação, conforme mostrado na tabela a seguir.
Valor | Descrição |
---|---|
Um inteiro negativo | Esta instância precede obj .
|
Zero | Esta instância e obj têm a mesma posição na ordem de classificação.
|
Um inteiro positivo | Esta instância segue obj .
|
Implementações
Exceções
obj
não é um objeto Tuple<T1,T2>.
Exemplos
O exemplo a seguir cria uma matriz de Tuple<T1,T2> objetos que consistem no nome e na pontuação de teste de um aluno. Ele exibe o componente de cada tupla na matriz em ordem não classificada, classifica a matriz e, em seguida, chama ToString para exibir o valor de cada tupla em ordem classificada. A saída mostra que a matriz foi classificada pelo primeiro componente. Observe que o exemplo não chama diretamente o IComparable.CompareTo(Object) método. Este método é chamado implicitamente pelo método Sort(Array) para cada elemento na matriz.
using System;
public class Example
{
public static void Main()
{
Tuple<string, Nullable<int>>[] scores =
{ new Tuple<string, Nullable<int>>("Jack", 78),
new Tuple<string, Nullable<int>>("Abbey", 92),
new Tuple<string, Nullable<int>>("Dave", 88),
new Tuple<string, Nullable<int>>("Sam", 91),
new Tuple<string, Nullable<int>>("Ed", null),
new Tuple<string, Nullable<int>>("Penelope", 82),
new Tuple<string, Nullable<int>>("Linda", 99),
new Tuple<string, Nullable<int>>("Judith", 84) };
Console.WriteLine("The values in unsorted order:");
foreach (Tuple<string, Nullable<int>> score in scores)
Console.WriteLine(score.ToString());
Console.WriteLine();
Array.Sort(scores);
Console.WriteLine("The values in sorted order:");
foreach (Tuple<string, Nullable<int>> score in scores)
Console.WriteLine(score.ToString());
}
}
// The example displays the following output;
// The values in unsorted order:
// (Jack, 78)
// (Abbey, 92)
// (Dave, 88)
// (Sam, 91)
// (Ed, )
// (Penelope, 82)
// (Linda, 99)
// (Judith, 84)
//
// The values in sorted order:
// (Abbey, 92)
// (Dave, 88)
// (Ed, )
// (Jack, 78)
// (Judith, 84)
// (Linda, 99)
// (Penelope, 82)
// (Sam, 91)
open System
let scores =
[| Tuple<string, Nullable<int>>("Jack", 78)
Tuple<string, Nullable<int>>("Abbey", 92)
Tuple<string, Nullable<int>>("Dave", 88)
Tuple<string, Nullable<int>>("Sam", 91)
Tuple<string, Nullable<int>>("Ed", Nullable())
Tuple<string, Nullable<int>>("Penelope", 82)
Tuple<string, Nullable<int>>("Linda", 99)
Tuple<string, Nullable<int>>("Judith", 84) |]
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)
// (Abbey, 92)
// (Dave, 88)
// (Sam, 91)
// (Ed, )
// (Penelope, 82)
// (Linda, 99)
// (Judith, 84)
//
// The values in sorted order:
// (Abbey, 92)
// (Dave, 88)
// (Ed, )
// (Jack, 78)
// (Judith, 84)
// (Linda, 99)
// (Penelope, 82)
// (Sam, 91)
Module Example
Public Sub Main()
Dim scores() As Tuple(Of String, Nullable(Of Integer)) =
{ New Tuple(Of String, Nullable(Of Integer))("Jack", 78),
New Tuple(Of String, Nullable(Of Integer))("Abbey", 92),
New Tuple(Of String, Nullable(Of Integer))("Dave", 88),
New Tuple(Of String, Nullable(Of Integer))("Sam", 91),
New Tuple(Of String, Nullable(Of Integer))("Ed", Nothing),
New Tuple(Of String, Nullable(Of Integer))("Penelope", 82),
New Tuple(Of String, Nullable(Of Integer))("Linda", 99),
New Tuple(Of String, Nullable(Of Integer))("Judith", 84) }
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)
' (Abbey, 92)
' (Dave, 88)
' (Sam, 91)
' (Ed, )
' (Penelope, 82)
' (Linda, 99)
' (Judith, 84)
'
' The values in sorted order:
' (Abbey, 92)
' (Dave, 88)
' (Ed, )
' (Jack, 78)
' (Judith, 84)
' (Linda, 99)
' (Penelope, 82)
' (Sam, 91)
Comentários
Este membro é uma implementação do membro de interface explícita. Ele só pode ser usado quando a instância de Tuple<T1,T2> é convertida em uma interface de IComparable.
Esse método fornece a IComparable.CompareTo implementação para a Tuple<T1,T2> classe. Embora possa ser chamado diretamente, o método é mais comumente chamado pelas sobrecargas padrão de métodos de classificação da coleção, como Array.Sort(Array) e SortedList.Add, para classificar os membros de uma coleção.
Cuidado
O Tuple<T1,T2>.IComparable.CompareTo método destina-se ao uso em operações de classificação. Ele não deve ser usado quando a finalidade principal de uma comparação é determinar se dois objetos são iguais. Para determinar se dois objetos são iguais, chame o Equals método.
O Tuple<T1,T2>.IComparable.CompareTo método usa o comparador de objeto padrão para comparar cada componente.