Tuple<T1,T2,T3,T4,T5,T6,T7,TRest>.IComparable.CompareTo(Object) Metoda
Definice
Důležité
Některé informace platí pro předběžně vydaný produkt, který se může zásadně změnit, než ho výrobce nebo autor vydá. Microsoft neposkytuje žádné záruky, výslovné ani předpokládané, týkající se zde uváděných informací.
Porovná aktuální Tuple<T1,T2,T3,T4,T5,T6,T7,TRest> objekt se zadaným objektem a vrátí celé číslo, které označuje, zda je aktuální objekt před, po nebo ve stejné pozici jako zadaný objekt v pořadí řazení.
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
Parametry
- obj
- Object
Objekt k porovnání s aktuální instancí.
Návraty
Celé číslo se znaménkem, které označuje relativní pozici této instance a obj
v pořadí řazení, jak je znázorněno v následující tabulce.
Hodnota | Popis |
---|---|
Záporné celé číslo | Tato instance předchází obj .
|
Žádnou | Tato instance a obj mají stejnou pozici v pořadí řazení.
|
Kladné celé číslo | Tato instance následuje po obj .
|
Implementuje
Výjimky
obj
není Tuple<T1,T2,T3,T4,T5,T6,T7,TRest> objekt.
Příklady
Následující příklad vytvoří pole osmičků, jejichž součásti jsou celá čísla obsahující oblast prvočísek. Příklad zobrazí prvky pole v neseřazené pořadí, seřadí pole a pak zobrazí pole v seřazené pořadí. Výstup ukazuje, že pole bylo seřazeno podle Item1nebo první komponenty řazené kolekce členů. Všimněte si, že příklad nevolá přímo metodu IComparable.CompareTo(Object) . Tato metoda je volána implicitně metodou Sort(Array) pro každý prvek v poli.
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)
Poznámky
Tento člen je explicitní implementace členu rozhraní. Lze jej použít pouze v případě, že Tuple<T1,T2,T3,T4,T5,T6,T7,TRest> je instance přetypovaná na IComparable rozhraní.
Tato metoda poskytuje implementaci IComparable.CompareTo pro Tuple<T1,T2,T3,T4,T5,T6,T7,TRest> třídu . I když je možné metodu volat přímo, je nejčastěji volána výchozími přetíženími metod řazení kolekcí, jako Array.Sort(Array) je a SortedList.Add, aby se členové kolekce seřadily.
Upozornění
Metoda IComparable.CompareTo je určena pro použití v operacích řazení. Není vhodné jej používat, pokud je primárním účelem porovnání zjištění, zda se dva objekty rovnají. Chcete-li zjistit, zda jsou dva objekty rovny, zavolejte metodu Tuple<T1,T2,T3,T4,T5,T6,T7,TRest>.Equals(Object) .
Tato metoda používá výchozí porovnávače objektů k porovnání jednotlivých komponent.