Tuple<T1,T2,T3,T4>.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> objekt se zadaným objektem a vrátí celé číslo, které označuje, zda je aktuální objekt před, za 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, 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 má stejnou pozici v pořadí řazení.
|
Kladné celé číslo | Tato instance následuje obj .
|
Implementuje
Výjimky
obj
Tuple<T1,T2,T3,T4> není objekt.
Příklady
Následující příklad vytvoří pole Tuple<T1,T2,T3,T4> objektů, jejichž součásti se skládají z názvu baseballového nadhazovače, počtu inningů a počtu hitů a získaných běhů. Zobrazí komponenty jednotlivých řazených kolekcí členů v poli v neseřazených pořadích, seřadí matici a pak volání ToString , která zobrazí jednotlivé kolekce členů v seřazených pořadích. Výstup ukazuje, že pole bylo seřazeno podle názvu, což je první komponenta. Všimněte si, že příklad přímo nevolá metodu IComparable.CompareTo(Object) . Tato metoda se implicitně nazývá metodou Sort(Array) pro každý prvek v poli.
using System;
using System.Collections.Generic;
public class Example
{
public static void Main()
{
Tuple<string, decimal, int, int>[] pitchers =
{ Tuple.Create("McHale, Joe", 240.1m, 221, 96),
Tuple.Create("Paul, Dave", 233.1m, 231, 84),
Tuple.Create("Williams, Mike", 193.2m, 183, 86),
Tuple.Create("Blair, Jack", 168.1m, 146, 65),
Tuple.Create("Henry, Walt", 140.1m, 96, 30),
Tuple.Create("Lee, Adam", 137.2m, 109, 45),
Tuple.Create("Rohr, Don", 101.0m, 110, 42) };
// Display the array in unsorted order.
Console.WriteLine("The values in unsorted order:");
foreach (var pitcher in pitchers)
Console.WriteLine(pitcher.ToString());
Console.WriteLine();
// Sort the array
Array.Sort(pitchers);
// Display the array in sorted order.
Console.WriteLine("The values in sorted order:");
foreach (var pitcher in pitchers)
Console.WriteLine(pitcher.ToString());
}
}
// The example displays the following output;
// The values in unsorted order:
// (McHale, Joe, 240.1, 221, 96)
// (Paul, Dave, 233.1, 231, 84)
// (Williams, Mike, 193.2, 183, 86)
// (Blair, Jack, 168.1, 146, 65)
// (Henry, Walt, 140.1, 96, 30)
// (Lee, Adam, 137.2, 109, 45)
// (Rohr, Don, 101, 110, 42)
//
// The values in sorted order:
// (Blair, Jack, 168.1, 146, 65)
// (Henry, Walt, 140.1, 96, 30)
// (Lee, Adam, 137.2, 109, 45)
// (McHale, Joe, 240.1, 221, 96)
// (Paul, Dave, 233.1, 231, 84)
// (Rohr, Don, 101, 110, 42)
// (Williams, Mike, 193.2, 183, 86)
open System
let pitchers =
[| Tuple.Create("McHale, Joe", 240.1m, 221, 96)
Tuple.Create("Paul, Dave", 233.1m, 231, 84)
Tuple.Create("Williams, Mike", 193.2m, 183, 86)
Tuple.Create("Blair, Jack", 168.1m, 146, 65)
Tuple.Create("Henry, Walt", 140.1m, 96, 30)
Tuple.Create("Lee, Adam", 137.2m, 109, 45)
Tuple.Create("Rohr, Don", 101.0m, 110, 42) |]
// Display the array in unsorted order.
printfn "The values in unsorted order:"
for pitcher in pitchers do
printfn $"{pitcher}"
printfn ""
// Sort the array
Array.Sort pitchers
// Display the array in sorted order.
printfn "The values in sorted order:"
for pitcher in pitchers do
printfn $"{pitcher}"
// The example displays the following output
// The values in unsorted order:
// (McHale, Joe, 240.1, 221, 96)
// (Paul, Dave, 233.1, 231, 84)
// (Williams, Mike, 193.2, 183, 86)
// (Blair, Jack, 168.1, 146, 65)
// (Henry, Walt, 140.1, 96, 30)
// (Lee, Adam, 137.2, 109, 45)
// (Rohr, Don, 101, 110, 42)
//
// The values in sorted order:
// (Blair, Jack, 168.1, 146, 65)
// (Henry, Walt, 140.1, 96, 30)
// (Lee, Adam, 137.2, 109, 45)
// (McHale, Joe, 240.1, 221, 96)
// (Paul, Dave, 233.1, 231, 84)
// (Rohr, Don, 101, 110, 42)
// (Williams, Mike, 193.2, 183, 86)
Imports System.Collections.Generic
Module Example
Public Sub Main()
Dim pitchers() =
{ Tuple.Create("McHale, Joe", 240.1d, 221, 96),
Tuple.Create("Paul, Dave", 233.1d, 231, 84),
Tuple.Create("Williams, Mike", 193.2d, 183, 86),
Tuple.Create("Blair, Jack", 168.1d, 146, 65),
Tuple.Create("Henry, Walt", 140.1d, 96, 30),
Tuple.Create("Lee, Adam", 137.2d, 109, 45),
Tuple.Create("Rohr, Don", 101.0d, 110, 42) }
' Display the array in unsorted order.
Console.WriteLine("The values in unsorted order:")
For Each pitcher In pitchers
Console.WriteLine(pitcher.ToString())
Next
Console.WriteLine()
' Sort the array
Array.Sort(pitchers)
' Display the array in sorted order.
Console.WriteLine("The values in sorted order:")
For Each pitcher In pitchers
Console.WriteLine(pitcher.ToString())
Next
End Sub
End Module
' The example displays the following output:
' The values in unsorted order:
' (McHale, Joe, 240.1, 221, 96)
' (Paul, Dave, 233.1, 231, 84)
' (Williams, Mike, 193.2, 183, 86)
' (Blair, Jack, 168.1, 146, 65)
' (Henry, Walt, 140.1, 96, 30)
' (Lee, Adam, 137.2, 109, 45)
' (Rohr, Don, 101, 110, 42)
'
' The values in sorted order:
' (Blair, Jack, 168.1, 146, 65)
' (Henry, Walt, 140.1, 96, 30)
' (Lee, Adam, 137.2, 109, 45)
' (McHale, Joe, 240.1, 221, 96)
' (Paul, Dave, 233.1, 231, 84)
' (Rohr, Don, 101, 110, 42)
' (Williams, Mike, 193.2, 183, 86)
Poznámky
Tento člen je explicitní implementace členu rozhraní. Lze ho Tuple<T1,T2,T3,T4> použít pouze v případě, že je instance přetypována do IComparable rozhraní.
Tato metoda poskytuje implementaci IComparable.CompareTo Tuple<T1,T2,T3,T4> třídy. I když lze metodu volat přímo, je nejčastěji volána výchozím přetížením metod řazení kolekce, jako je a Array.Sort(Array) SortedList.Add, aby se členové kolekce.
Upozornění
Metoda IComparable.CompareTo je určena k 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 stejné, zavolejte metodu Equals .
Metoda IComparable.CompareTo používá výchozí porovnávač objektů k porovnání jednotlivých komponent.