Tuple<T1>.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> 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> objeto.
Exemplos
O exemplo seguinte cria um array de singletons cujo componente é um Double valor. Apresenta o valor de cada componente da tupla por ordem não ordenada, ordena o array e depois mostra os valores por ordem ordenada. Note que o exemplo não chama diretamente o Tuple<T1>.IComparable.CompareTo método. Este método é chamado implicitamente pelo Sort(Array) método de cada elemento no array.
using System;
class Example
{
static void Main()
{
Tuple<Double>[] values = { Tuple.Create(13.54),
Tuple.Create(Double.NaN),
Tuple.Create(-189.42993),
Tuple.Create(Double.PositiveInfinity),
Tuple.Create(Double.Epsilon),
Tuple.Create(1.934E-17),
Tuple.Create(Double.NegativeInfinity),
Tuple.Create(-0.000000000003588),
null };
Console.WriteLine("The values in unsorted order:");
foreach (var value in values)
if (value != null)
Console.WriteLine(" {0}", value.Item1);
else
Console.WriteLine(" <null>");
Console.WriteLine();
Array.Sort(values);
Console.WriteLine("The values in sorted order:");
foreach (var value in values)
if (value != null)
Console.WriteLine(" {0}", value.Item1);
else
Console.WriteLine(" <null>");
}
}
// The example displays the following output:
// The values in unsorted order:
// 13.54
// NaN
// -189.42993
// Infinity
// 4.94065645841247E-324
// 1.934E-17
// -Infinity
// -3.588E-12
//
// The values in sorted order:
// NaN
// -Infinity
// -189.42993
// -3.588E-12
// 4.94065645841247E-324
// 1.934E-17
// 13.54
// Infinity
open System
let values =
[| Tuple.Create 13.54
Tuple.Create Double.NaN
Tuple.Create -189.42993
Tuple.Create Double.PositiveInfinity
Tuple.Create Double.Epsilon
Tuple.Create 1.934E-17
Tuple.Create Double.NegativeInfinity
Tuple.Create -0.000000000003588
null |]
printfn "The values in unsorted order:"
for value in values do
printfn $" %A{value.Item1}"
printfn ""
Array.Sort values
printfn "The values sorted in descending order:"
for value in values do
printfn $" %A{value.Item1}"
// The example displays the following output:
// The values in unsorted order:
// 13.54
// NaN
// -189.42993
// Infinity
// 4.94065645841247E-324
// 1.934E-17
// -Infinity
// -3.588E-12
//
// The values in sorted order:
// NaN
// -Infinity
// -189.42993
// -3.588E-12
// 4.94065645841247E-324
// 1.934E-17
// 13.54
// Infinity
Module Example
Sub Main()
Dim values() = { Tuple.Create(13.54),
Tuple.Create(Double.NaN),
Tuple.Create(-189.42993),
Tuple.Create(Double.PositiveInfinity),
Tuple.Create(Double.Epsilon),
Tuple.Create(1.934E-17),
Tuple.Create(Double.NegativeInfinity),
Tuple.Create(-0.000000000003588),
Nothing}
Console.WriteLine("The values in unsorted order:")
For Each value In values
If value IsNot Nothing Then
Console.WriteLine(" {0}", value.Item1)
Else
Console.WriteLine(" <null>")
End If
Next
Console.WriteLine()
Array.Sort(values)
Console.WriteLine("The values in sorted order:")
For Each value In values
If value IsNot Nothing Then
Console.WriteLine(" {0}", value.Item1)
Else
Console.WriteLine(" <null>")
End If
Next
End Sub
End Module
' The example displays the following output:
' The values in unsorted order:
' 13.54
' NaN
' -189.42993
' Infinity
' 4.94065645841247E-324
' 1.934E-17
' -Infinity
' -3.588E-12
'
' The values in sorted order:
' NaN
' -Infinity
' -189.42993
' -3.588E-12
' 4.94065645841247E-324
' 1.934E-17
' 13.54
' Infinity
Observações
Este membro é uma implementação explícita de membro de interface. Só pode ser usado quando a Tuple<T1> instância é transmitida para uma IComparable interface.
Este método fornece a IComparable.CompareTo implementação para a Tuple<T1> 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 Tuple<T1>.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 Equals método.
O Tuple<T1>.IComparable.CompareTo método utiliza o comparador de objetos por defeito.