Compartir a través de


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

Definición

Compara el objeto Tuple<T1,T2,T3,T4,T5,T6,T7> actual con un objeto especificado y devuelve un entero que indica si el objeto actual es anterior, posterior o está en la misma posición que el objeto especificado en el criterio de ordenación.

 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

Objeto que se va a comparar con la instancia actual.

Devoluciones

Int32

Entero con signo que indica la posición relativa de esta instancia y obj en el criterio de ordenación, tal como se muestra en la tabla siguiente.

Valor Descripción
Un entero negativo Esta instancia precede a obj.
Cero En el criterio de ordenación, esta instancia y obj tienen la misma posición.
Un entero positivo. Esta instancia es posterior a obj.

Implementaciones

Excepciones

Ejemplos

En el ejemplo siguiente se crea una matriz de objetos que contienen datos de Tuple<T1,T2,T3,T4,T5,T6,T7> población para tres ciudades de la Estados Unidos de 1950 a 2000. Los siete componentes constan del nombre de la ciudad seguido de la población de la ciudad a intervalos de 10 años de 1950 a 2000. En el ejemplo se muestran los componentes de cada tupla de la matriz en orden no ordenado, se ordena la matriz y, a continuación, se llama al ToString método para mostrar cada tupla en orden ordenado. La salida muestra que la matriz se ha ordenado por nombre, que es el primer componente. Tenga en cuenta que el ejemplo no llama directamente al IComparable.CompareTo(Object) método . El método llama implícitamente Sort(Array) a este método para cada elemento de la matriz.

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)

Comentarios

Este miembro es una implementación explícita de un miembro de interfaz. Solo se puede utilizar cuando la instancia de Tuple<T1,T2,T3,T4,T5,T6,T7> se convierte en una interfaz IComparable.

Este método proporciona la IComparable.CompareTo implementación de la Tuple<T1,T2,T3,T4,T5,T6,T7> clase . Aunque se puede llamar directamente al método , normalmente se llama mediante las sobrecargas predeterminadas de métodos de ordenación de colección, como Array.Sort(Array) y SortedList.Add, para ordenar los miembros de una colección.

Precaución

El IComparable.CompareTo método está pensado para su uso en las operaciones de ordenación. No se debe usar cuando el propósito principal de una comparación es determinar si dos objetos son iguales. Para determinar si dos objetos son iguales, llame al Tuple<T1,T2,T3,T4,T5,T6,T7>.Equals(Object) método .

Este método usa el comparador de objetos predeterminado para comparar cada componente.

Se aplica a