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

Definição

Compara o objeto Tuple<T1,T2,T3,T4> 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.

int IComparable.CompareTo (object obj);

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,T3,T4>.

Exemplos

O exemplo a seguir cria uma matriz de Tuple<T1,T2,T3,T4> objetos cujos componentes consistem no nome de um arremessador de beisebol, número de innings lançados e número de ocorrências e corridas ganhas des dadas. Ele exibe os componentes de cada tupla na matriz em ordem não classificada, classifica a matriz e chama ToString para exibir cada tupla em ordem classificada. A saída mostra que a matriz foi classificada por nome, que é o 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;
using System.Collections.Generic;

public class Example
{
   public static void Main()
   {
      Tuple<string, decimal, int, int>[] pitchers  =  
                      { Tuple.Create("McHale, Joe", 240.1m, 221, 96),
                        Tuple.Create("Paul, Dave", 233.1m, 231, 84), 
                        Tuple.Create("Williams, Mike", 193.2m, 183, 86),
                        Tuple.Create("Blair, Jack", 168.1m, 146, 65), 
                        Tuple.Create("Henry, Walt", 140.1m, 96, 30),
                        Tuple.Create("Lee, Adam", 137.2m, 109, 45),
                        Tuple.Create("Rohr, Don", 101.0m, 110, 42) };

      // Display the array in unsorted order.
      Console.WriteLine("The values in unsorted order:");
      foreach (var pitcher in pitchers)
         Console.WriteLine(pitcher.ToString());
      Console.WriteLine();
      
      // Sort the array
      Array.Sort(pitchers);
      
      // Display the array in sorted order.
      Console.WriteLine("The values in sorted order:");
      foreach (var pitcher in pitchers)
         Console.WriteLine(pitcher.ToString());
   }
}
// The example displays the following output;
//       The values in unsorted order:
//       (McHale, Joe, 240.1, 221, 96)
//       (Paul, Dave, 233.1, 231, 84)
//       (Williams, Mike, 193.2, 183, 86)
//       (Blair, Jack, 168.1, 146, 65)
//       (Henry, Walt, 140.1, 96, 30)
//       (Lee, Adam, 137.2, 109, 45)
//       (Rohr, Don, 101, 110, 42)
//       
//       The values in sorted order:
//       (Blair, Jack, 168.1, 146, 65)
//       (Henry, Walt, 140.1, 96, 30)
//       (Lee, Adam, 137.2, 109, 45)
//       (McHale, Joe, 240.1, 221, 96)
//       (Paul, Dave, 233.1, 231, 84)
//       (Rohr, Don, 101, 110, 42)
//       (Williams, Mike, 193.2, 183, 86)

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,T3,T4> é convertida em uma interface de IComparable.

Esse método fornece a IComparable.CompareTo implementação para a Tuple<T1,T2,T3,T4> 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.

Atenção

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 Equals método .

O IComparable.CompareTo método usa o comparador de objeto padrão para comparar cada componente.

Aplica-se a

Produto Versões
.NET Core 1.0, Core 1.1, Core 2.0, Core 2.1, Core 2.2, Core 3.0, Core 3.1, 5, 6, 7, 8, 9
.NET Framework 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1
.NET Standard 1.0, 1.1, 1.2, 1.3, 1.4, 1.5, 1.6, 2.0, 2.1
UWP 10.0

Confira também