Tuple<T1,T2,T3,T4,T5,T6,T7,TRest>.IComparable.CompareTo(Object) Método

Definição

Compara o objeto atual Tuple<T1,T2,T3,T4,T5,T6,T7,TRest> com 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 com sinal 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 Essa instância precede obj.
Zero Essa instância e obj tem a mesma posição na ordem de classificação.
Um inteiro positivo Esta instância segue obj.

Implementações

Exceções

Exemplos

O exemplo a seguir cria uma matriz de octuplas cujos componentes são inteiros que contêm um intervalo de números primos. O exemplo exibe os elementos da matriz em ordem não classificada, classifica a matriz e exibe a matriz em ordem classificada. A saída mostra que a matriz foi classificada por Item1, ou o primeiro componente da tupla. Observe que o exemplo não chama diretamente o IComparable.CompareTo(Object) método. Esse método é chamado implicitamente pelo Sort(Array) método para cada elemento na matriz.

using System;

public class Example
{
   public static void Main()
   {
      // Create array of 8-tuple objects containing prime numbers.
      Tuple<Int32, Int32, Int32, Int32, Int32, Int32, Int32, Tuple<Int32>>[] primes = 
                     { new Tuple<Int32, Int32, Int32, Int32, Int32, Int32, Int32, 
                           Tuple<Int32>>(2, 3, 5, 7, 11, 13, 17, new Tuple<Int32>(19)),
                       new Tuple<Int32, Int32, Int32, Int32, Int32, Int32, Int32, 
                           Tuple<Int32>>(23, 29, 31, 37, 41, 43, 47, new Tuple<Int32>(55)), 
                       new Tuple<Int32, Int32, Int32, Int32, Int32, Int32, Int32, 
                           Tuple<Int32>>(3, 2, 5, 7, 11, 13, 17, new Tuple<Int32>(19)) };
      // Display 8-tuples in unsorted order.
      foreach (var prime in primes)
         Console.WriteLine(prime.ToString());
      Console.WriteLine();
      
      // Sort the array and display its 8-tuples.
      Array.Sort(primes);
      foreach (var prime in primes)
         Console.WriteLine(prime.ToString());
   }
}
// The example displays the following output:
//       (2, 3, 5, 7, 11, 13, 17, 19)
//       (23, 29, 31, 37, 41, 43, 47, 55)
//       (3, 2, 5, 7, 11, 13, 17, 19)
//       
//       (2, 3, 5, 7, 11, 13, 17, 19)
//       (3, 2, 5, 7, 11, 13, 17, 19)
//       (23, 29, 31, 37, 41, 43, 47, 55)
open System

// Create array of 8-tuple objects containing prime numbers.
let primes = 
    [| new Tuple<Int32, Int32, Int32, Int32, Int32, Int32, Int32, 
           Tuple<Int32>>(2, 3, 5, 7, 11, 13, 17, new Tuple<Int32>(19))
       new Tuple<Int32, Int32, Int32, Int32, Int32, Int32, Int32,
           Tuple<Int32>>(23, 29, 31, 37, 41, 43, 47, new Tuple<Int32>(55)) 
       new Tuple<Int32, Int32, Int32, Int32, Int32, Int32, Int32,
           Tuple<Int32>>(3, 2, 5, 7, 11, 13, 17, new Tuple<Int32>(19)) |]
// Display 8-tuples in unsorted order.
for prime in primes do
    printfn $"{prime}"
printfn ""

// Sort the array and display its 8-tuples.
Array.Sort primes
for prime in primes do
    printfn $"{prime}"
// The example displays the following output:
//       (2, 3, 5, 7, 11, 13, 17, 19)
//       (23, 29, 31, 37, 41, 43, 47, 55)
//       (3, 2, 5, 7, 11, 13, 17, 19)
//       
//       (2, 3, 5, 7, 11, 13, 17, 19)
//       (3, 2, 5, 7, 11, 13, 17, 19)
//       (23, 29, 31, 37, 41, 43, 47, 55)
Module Example
   Public Sub Main()
      ' Create array of 8-tuple objects containing prime numbers.
      Dim primes() = { New Tuple(Of Int32, Int32, Int32, Int32, Int32, Int32, Int32, 
                           Tuple(Of Int32)) (2, 3, 5, 7, 11, 13, 17, 
                           New Tuple(Of Int32)(19)),
                       New Tuple(Of Int32, Int32, Int32, Int32, Int32, Int32, Int32, 
                           Tuple(Of Int32)) (23, 29, 31, 37, 41, 43, 47, 
                           New Tuple(Of Int32)(55)), 
                       New Tuple(Of Int32, Int32, Int32, Int32, Int32, Int32, Int32, 
                           Tuple(Of Int32)) (3, 2, 5, 7, 11, 13, 17, 
                           New Tuple(Of Int32)(19)) }
      ' Display 8-tuples in unsorted order.
      For Each prime In primes
         Console.WriteLine(prime.ToString())
      Next
      Console.WriteLine()
      
      ' Sort the array and display its 8-tuples.
      Array.Sort(primes)
      For Each prime In primes
         Console.WriteLine(prime.ToString())
      Next
   End Sub
End Module
' The example displays the following output:
'       (2, 3, 5, 7, 11, 13, 17, 19)
'       (23, 29, 31, 37, 41, 43, 47, 55)
'       (3, 2, 5, 7, 11, 13, 17, 19)
'       
'       (2, 3, 5, 7, 11, 13, 17, 19)
'       (3, 2, 5, 7, 11, 13, 17, 19)
'       (23, 29, 31, 37, 41, 43, 47, 55)

Comentários

Esse membro é uma implementação de membro de interface explícita. Ele só pode ser usado quando a Tuple<T1,T2,T3,T4,T5,T6,T7,TRest> instância é convertida em uma IComparable interface.

Esse método fornece a IComparable.CompareTo implementação para a Tuple<T1,T2,T3,T4,T5,T6,T7,TRest> classe. Embora o método possa ser chamado diretamente, ele é mais comumente chamado pelas sobrecargas padrão de métodos de classificação de coleção, como Array.Sort(Array) e SortedList.Add, para ordenar os membros de uma coleção.

Cuidado

O 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 Tuple<T1,T2,T3,T4,T5,T6,T7,TRest>.Equals(Object) método.

Esse método usa o comparador de objeto padrão para comparar cada componente.

Aplica-se a