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

Definição

Compara o objeto atual Tuple<T1,T2,T3,T4,T5,T6,T7> com um objeto especificado e devolve um inteiro que indica se o objeto atual está antes, depois ou na mesma posição que o objeto especificado na ordem de ordenaçã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 para comparar com a instância atual.

Devoluções

Um inteiro assinado que indica a posição relativa desta instância e obj na ordem de ordenação, conforme mostrado na tabela seguinte.

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 ordenação.
Um inteiro positivo Esta instância segue obj.

Implementações

Exceções

Exemplos

O exemplo seguinte cria um array de objetos Tuple<T1,T2,T3,T4,T5,T6,T7> que contêm dados populacionais de três cidades no Estados Unidos entre 1950 e 2000. Os sete componentes consistem no nome da cidade seguido pela população da cidade em intervalos de 10 anos, de 1950 a 2000. O exemplo mostra os componentes de cada tupla no array por ordem não ordenada, ordena o array e depois chama o ToString método para mostrar cada tupla por ordem ordenada. A saída mostra que o array foi ordenado por nome, que é o primeiro componente. Note que o exemplo não chama diretamente o IComparable.CompareTo(Object) método. Este método é chamado implicitamente pelo Sort(Array) método de cada elemento no array.

using System;

public class Example
{
   public static void Main()
   {
      // Create array of sextuple with population data for three U.S. 
      // cities, 1950-2000.
      Tuple<string, int, int, int, int, int, int>[] cities = 
          { Tuple.Create("Los Angeles", 1970358, 2479015, 2816061, 2966850, 3485398, 3694820),
            Tuple.Create("New York", 7891957, 7781984, 7894862, 7071639, 7322564, 8008278),  
            Tuple.Create("Chicago", 3620962, 3550904, 3366957, 3005072, 2783726, 2896016) }; 
      
      // Display array in unsorted order.
      Console.WriteLine("In unsorted order:");
      foreach (var city in cities)
         Console.WriteLine(city.ToString());

      Console.WriteLine();
      
      Array.Sort(cities);
                           
      // Display array in sorted order.
      Console.WriteLine("In sorted order:");
      foreach (var city in cities)
         Console.WriteLine(city.ToString());
   }
}
// The example displays the following output:
//    In unsorted order:
//    (Los Angeles, 1970358, 2479015, 2816061, 2966850, 3485398, 3694820)
//    (New York, 7891957, 7781984, 7894862, 7071639, 7322564, 8008278)
//    (Chicago, 3620962, 3550904, 3366957, 3005072, 2783726, 2896016)
//    
//    In sorted order:
//    (Chicago, 3620962, 3550904, 3366957, 3005072, 2783726, 2896016)
//    (Los Angeles, 1970358, 2479015, 2816061, 2966850, 3485398, 3694820)
//    (New York, 7891957, 7781984, 7894862, 7071639, 7322564, 8008278)
open System

// Create array of sextuple with population data for three U.S. 
// cities, 1950-2000.
let cities = 
    [| Tuple.Create("Los Angeles", 1970358, 2479015, 2816061, 2966850, 3485398, 3694820)
       Tuple.Create("New York", 7891957, 7781984, 7894862, 7071639, 7322564, 8008278) 
       Tuple.Create("Chicago", 3620962, 3550904, 3366957, 3005072, 2783726, 2896016) |]

// Display array in unsorted order.
printfn $"In unsorted order:"
for city in cities do
    printfn $"{city}"

printfn ""

Array.Sort cities
                    
// Display array in sorted order.
printfn "In sorted order:"
for city in cities do
    printfn $"{city}"
// The example displays the following output:
//    In unsorted order:
//    (Los Angeles, 1970358, 2479015, 2816061, 2966850, 3485398, 3694820)
//    (New York, 7891957, 7781984, 7894862, 7071639, 7322564, 8008278)
//    (Chicago, 3620962, 3550904, 3366957, 3005072, 2783726, 2896016)
//    
//    In sorted order:
//    (Chicago, 3620962, 3550904, 3366957, 3005072, 2783726, 2896016)
//    (Los Angeles, 1970358, 2479015, 2816061, 2966850, 3485398, 3694820)
//    (New York, 7891957, 7781984, 7894862, 7071639, 7322564, 8008278)
Module Example
   Public Sub Main()
      ' Create array of sextuple with population data for three U.S. 
      ' cities, 1950-2000.
      Dim cities() = _
          { Tuple.Create("Los Angeles", 1970358, 2479015, 2816061, 2966850, 3485398, 3694820),
            Tuple.Create("New York", 7891957, 7781984, 7894862, 7071639, 7322564, 8008278),  
            Tuple.Create("Chicago", 3620962, 3550904, 3366957, 3005072, 2783726, 2896016) } 
      
      ' Display array in unsorted order.
      Console.WriteLine("In unsorted order:")
      For Each city In cities
         Console.WriteLine(city.ToString())
      Next
      Console.WriteLine()
      
      Array.Sort(cities) 
                           
      ' Display array in sorted order.
      Console.WriteLine("In sorted order:")
      For Each city In cities
         Console.WriteLine(city.ToString())
      Next
   End Sub
End Module
' The example displays the following output:
'    In unsorted order:
'    (Los Angeles, 1970358, 2479015, 2816061, 2966850, 3485398, 3694820)
'    (New York, 7891957, 7781984, 7894862, 7071639, 7322564, 8008278)
'    (Chicago, 3620962, 3550904, 3366957, 3005072, 2783726, 2896016)
'    
'    In sorted order:
'    (Chicago, 3620962, 3550904, 3366957, 3005072, 2783726, 2896016)
'    (Los Angeles, 1970358, 2479015, 2816061, 2966850, 3485398, 3694820)
'    (New York, 7891957, 7781984, 7894862, 7071639, 7322564, 8008278)

Observações

Este membro é uma implementação explícita de membro de interface. Só pode ser usado quando a Tuple<T1,T2,T3,T4,T5,T6,T7> instância é transmitida para uma IComparable interface.

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

Atenção

O IComparable.CompareTo método destina-se a ser utilizado em operações de ordenação. Não deve ser usado quando o objetivo principal de uma comparação é determinar se dois objetos são iguais. Para determinar se dois objetos são iguais, chama-se o Tuple<T1,T2,T3,T4,T5,T6,T7>.Equals(Object) método.

Este método utiliza o comparador de objetos padrão para comparar cada componente.

Aplica-se a