Tuple<T1,T2,T3,T4,T5,T6,T7,TRest>.IComparable.CompareTo(Object) Método
Definição
Importante
Algumas informações dizem respeito a um produto pré-lançado que pode ser substancialmente modificado antes de ser lançado. A Microsoft não faz garantias, de forma expressa ou implícita, em relação à informação aqui apresentada.
Compara o objeto atual Tuple<T1,T2,T3,T4,T5,T6,T7,TRest> 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
obj não é um Tuple<T1,T2,T3,T4,T5,T6,T7,TRest> objeto.
Exemplos
O exemplo seguinte cria um array de octuplos cujos componentes são inteiros que contêm um intervalo de números primos. O exemplo mostra os elementos do array por ordem não ordenada, ordena o array e depois apresenta o array por ordem ordenada. A saída mostra que o array foi ordenado por Item1, ou pelo primeiro componente da tupla. 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 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)
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,TRest> 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,TRest> 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,TRest>.Equals(Object) método.
Este método utiliza o comparador de objetos padrão para comparar cada componente.