Tuple<T1,T2,T3,T4,T5>.IComparable.CompareTo(Object) Methode

Definition

Vergleicht das aktuelle Tuple<T1,T2,T3,T4,T5> 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

Beispiele

Im folgenden Beispiel wird ein Array von Tuple<T1,T2,T3,T4,T5> Objekten erstellt, die Karrierestatistiken für running backs in American Professional Football enthalten. Die fünf Komponenten bestehen aus dem Namen des Spielers, der Anzahl der Spiele, in denen er gespielt hat, die Anzahl der Schlepper oder Versuche, die Gesamtzahl der gewonnenen Yards und die Anzahl der punkteten Touchdowns. Im Beispiel werden die Komponenten jedes Tupels im Array in nicht sortierter Reihenfolge angezeigt, das Array sortiert und dann aufgerufen 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 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()
   {
      // Organization of runningBacks 5-tuple:
      //    Component 1: Player name
      //    Component 2: Number of games played
      //    Component 3: Number of attempts (carries)
      //    Component 4: Number of yards gained 
      //    Component 5: Number of touchdowns   
      Tuple<string, int, int, int, int>[] runningBacks =
           { Tuple.Create("Payton, Walter", 190, 3838, 16726, 110),  
             Tuple.Create("Sanders, Barry", 153, 3062, 15269, 99),            
             Tuple.Create("Brown, Jim", 118, 2359, 12312, 106),            
             Tuple.Create("Dickerson, Eric", 144, 2996, 13259, 90),            
             Tuple.Create("Faulk, Marshall", 176, 2836, 12279, 100) }; 

      // Display the array in unsorted order.
      Console.WriteLine("The values in unsorted order:");
      foreach (var runningBack in runningBacks)
         Console.WriteLine(runningBack.ToString());
      Console.WriteLine();
      
      // Sort the array
      Array.Sort(runningBacks);
      
      // Display the array in sorted order.
      Console.WriteLine("The values in sorted order:");
      foreach (var runningBack in runningBacks)
         Console.WriteLine(runningBack.ToString());
   }
}
// The example displays the following output:
//       The values in unsorted order:
//       (Payton, Walter, 190, 3838, 16726, 110)
//       (Sanders, Barry, 153, 3062, 15269, 99)
//       (Brown, Jim, 118, 2359, 12312, 106)
//       (Dickerson, Eric, 144, 2996, 13259, 90)
//       (Faulk, Marshall, 176, 2836, 12279, 100)
//       
//       The values in sorted order:
//       (Brown, Jim, 118, 2359, 12312, 106)
//       (Dickerson, Eric, 144, 2996, 13259, 90)
//       (Faulk, Marshall, 176, 2836, 12279, 100)
//       (Payton, Walter, 190, 3838, 16726, 110)
//       (Sanders, Barry, 153, 3062, 15269, 99)
open System

// Organization of runningBacks 5-tuple:
//    Component 1: Player name
//    Component 2: Number of games played
//    Component 3: Number of attempts (carries)
//    Component 4: Number of yards gained 
//    Component 5: Number of touchdowns   
let runningBacks =
    [| Tuple.Create("Payton, Walter", 190, 3838, 16726, 110)
       Tuple.Create("Sanders, Barry", 153, 3062, 15269, 99)
       Tuple.Create("Brown, Jim", 118, 2359, 12312, 106)
       Tuple.Create("Dickerson, Eric", 144, 2996, 13259, 90)
       Tuple.Create("Faulk, Marshall", 176, 2836, 12279, 100) |]

// Display the array in unsorted order.
printfn "The values in unsorted order:"
for runningBack in runningBacks do
    printfn $"{runningBack}"
printfn ""

// Sort the array
Array.Sort runningBacks

// Display the array in sorted order.
printfn "The values in sorted order:"
for runningBack in runningBacks do
    printfn $"{runningBack}"
// The example displays the following output:
//       The values in unsorted order:
//       (Payton, Walter, 190, 3838, 16726, 110)
//       (Sanders, Barry, 153, 3062, 15269, 99)
//       (Brown, Jim, 118, 2359, 12312, 106)
//       (Dickerson, Eric, 144, 2996, 13259, 90)
//       (Faulk, Marshall, 176, 2836, 12279, 100)
//       
//       The values in sorted order:
//       (Brown, Jim, 118, 2359, 12312, 106)
//       (Dickerson, Eric, 144, 2996, 13259, 90)
//       (Faulk, Marshall, 176, 2836, 12279, 100)
//       (Payton, Walter, 190, 3838, 16726, 110)
//       (Sanders, Barry, 153, 3062, 15269, 99)
Imports System.Collections.Generic

Module Example
   Public Sub Main()
      ' Organization of runningBacks 5-tuple:
      '    Component 1: Player name
      '    Component 2: Number of games played
      '    Component 3: Number of attempts (carries)
      '    Component 4: Number of yards gained 
      '    Component 5: Number of touchdowns   
      Dim runningBacks() =
          { Tuple.Create("Payton, Walter", 190, 3838, 16726, 110),  
            Tuple.Create("Sanders, Barry", 153, 3062, 15269, 99),            
            Tuple.Create("Brown, Jim", 118, 2359, 12312, 106),            
            Tuple.Create("Dickerson, Eric", 144, 2996, 13259, 90),            
            Tuple.Create("Faulk, Marshall", 176, 2836, 12279, 100) } 

      ' Display the array in unsorted order.
      Console.WriteLine("The values in unsorted order:")
      For Each runningBack In runningBacks
         Console.WriteLine(runningBack.ToString())
      Next
      Console.WriteLine()
      
      ' Sort the array
      Array.Sort(runningBacks)
      
      ' Display the array in sorted order.
      Console.WriteLine("The values in sorted order:")
      For Each runningBack In runningBacks
         Console.WriteLine(runningBack.ToString())
      Next
   End Sub
End Module
' The example displays the following output:
'       The values in unsorted order:
'       (Payton, Walter, 190, 3838, 16726, 110)
'       (Sanders, Barry, 153, 3062, 15269, 99)
'       (Brown, Jim, 118, 2359, 12312, 106)
'       (Dickerson, Eric, 144, 2996, 13259, 90)
'       (Faulk, Marshall, 176, 2836, 12279, 100)
'       
'       The values in sorted order:
'       (Brown, Jim, 118, 2359, 12312, 106)
'       (Dickerson, Eric, 144, 2996, 13259, 90)
'       (Faulk, Marshall, 176, 2836, 12279, 100)
'       (Payton, Walter, 190, 3838, 16726, 110)
'       (Sanders, Barry, 153, 3062, 15269, 99)

Hinweise

Dieses Element ist eine explizite Schnittstellenmitgliedsimplementierung. Sie kann nur verwendet werden, wenn die Tuple<T1,T2,T3,T4,T5> Instanz in eine IComparable Schnittstelle umgegossen wird.

Diese Methode stellt die IComparable.CompareTo Implementierung für die Tuple<T1,T2,T3,T4,T5> Klasse bereit. Obwohl die Methode direkt aufgerufen werden kann, wird sie am häufigsten durch die Standardüberladungen von Sammlungssortierungsmethoden, z Array.Sort(Array) . B. und SortedList.Add, aufgerufen, 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 Tuple<T1,T2,T3,T4,T5>.Equals(Object) Methode auf.

Die IComparable.CompareTo(Object) Methode verwendet den Standardobjektvergleich, um jede Komponente zu vergleichen.

Gilt für:

Weitere Informationen