Compartir a través de


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

Definición

Compara el objeto Tuple<T1,T2> 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

obj no es un objeto Tuple<T1,T2>.

Ejemplos

En el ejemplo siguiente se crea una matriz de Tuple<T1,T2> objetos que constan del nombre y la puntuación de prueba de un alumno. Muestra el componente de cada tupla en la matriz en orden no ordenado, ordena la matriz y, a continuación, llama ToString a para mostrar el valor de cada tupla en orden ordenado. La salida muestra que la matriz se ha ordenado por su 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()
   {
      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)

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> se convierte en una interfaz IComparable.

Este método proporciona la IComparable.CompareTo implementación de la Tuple<T1,T2> clase . Aunque el método se puede llamar directamente, lo más común es llamarlo por las sobrecargas predeterminadas de métodos de ordenación de colecciones, como Array.Sort(Array) y SortedList.Add, para ordenar los miembros de una colección.

Precaución

El Tuple<T1,T2>.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 Equals método .

El Tuple<T1,T2>.IComparable.CompareTo método usa el comparador de objetos predeterminado para comparar cada componente.

Se aplica a

Consulte también