Tuple<T1,T2,T3,T4>.IComparable.CompareTo(Object) Methode
Definition
Wichtig
Einige Informationen beziehen sich auf Vorabversionen, die vor dem Release ggf. grundlegend überarbeitet werden. Microsoft übernimmt hinsichtlich der hier bereitgestellten Informationen keine Gewährleistungen, seien sie ausdrücklich oder konkludent.
Vergleicht das aktuelle Tuple<T1,T2,T3,T4> Objekt mit einem angegebenen Objekt und gibt eine ganze Zahl zurück, die angibt, ob das aktuelle Objekt vor, nach oder in derselben Position wie das angegebene Objekt in der Sortierreihenfolge liegt.
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
Parameter
- obj
- Object
Ein Objekt, das mit der aktuellen Instanz verglichen werden soll.
Gibt zurück
Eine signierte ganze Zahl, die die relative Position dieser Instanz und obj in der Sortierreihenfolge angibt, wie in der folgenden Tabelle dargestellt.
| Wert: | Beschreibung |
|---|---|
| Eine negative ganze Zahl | Diese Instanz steht vor obj.
|
| Null | Diese Instanz und obj haben dieselbe Position in der Sortierreihenfolge.
|
| Eine positive ganze Zahl | Diese Instanz folgt obj.
|
Implementiert
Ausnahmen
obj ist kein Tuple<T1,T2,T3,T4> Objekt.
Beispiele
Im folgenden Beispiel wird ein Array von Tuple<T1,T2,T3,T4> Objekten erstellt, deren Komponenten aus dem Namen eines Baseball-Pitchers, der Anzahl der geplatzten Innings und der Anzahl von Treffern und verdienten Läufen bestehen. Es zeigt die Komponenten jedes Tupels im Array in nicht sortierter Reihenfolge an, sortiert das Array und ruft dann auf ToString , um jedes Tupel in sortierter Reihenfolge anzuzeigen. Die Ausgabe zeigt, dass das Array nach Name sortiert wurde, bei dem es sich um die erste Komponente handelt. Beachten Sie, dass das Beispiel die IComparable.CompareTo(Object) Methode nicht direkt aufruft. Diese Methode wird implizit von der Sort(Array) Methode für jedes Element im Array aufgerufen.
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)
Hinweise
Dieses Element ist eine explizite Schnittstellenmitgliedsimplementierung. Sie kann nur verwendet werden, wenn die Tuple<T1,T2,T3,T4> Instanz in eine IComparable Schnittstelle umgegossen wird.
Diese Methode stellt die IComparable.CompareTo Implementierung für die Tuple<T1,T2,T3,T4> Klasse bereit. Obwohl die Methode direkt aufgerufen werden kann, wird sie am häufigsten durch die Standardüberladungen der Sortiermethoden der Auflistung aufgerufen, z Array.Sort(Array) . B. und SortedList.Add, um die Member einer Auflistung zu ordnen.
Vorsicht
Die IComparable.CompareTo Methode ist für sortiervorgänge vorgesehen. Es sollte nicht verwendet werden, wenn der Hauptzweck eines Vergleichs darin besteht, zu bestimmen, ob zwei Objekte gleich sind. Um zu bestimmen, ob zwei Objekte gleich sind, rufen Sie die Equals Methode auf.
Die IComparable.CompareTo Methode verwendet den Standardobjektvergleich, um jede Komponente zu vergleichen.