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

Definitie

Vergelijkt het huidige Tuple<T1,T2> object met een opgegeven object en retourneert een geheel getal dat aangeeft of het huidige object zich vóór, na of op dezelfde positie bevindt als het opgegeven object in de sorteervolgorde.

 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

Parameters

obj
Object

Een object dat moet worden vergeleken met het huidige exemplaar.

Retouren

Een ondertekend geheel getal dat de relatieve positie van dit exemplaar en obj in de sorteervolgorde aangeeft, zoals wordt weergegeven in de volgende tabel.

Waarde Beschrijving
Een negatief geheel getal Dit exemplaar wordt voorafgegaan door obj.
Nul Dit exemplaar en obj hebben dezelfde positie in de sorteervolgorde.
Een positief geheel getal Dit exemplaar volgt obj.

Implementeringen

Uitzonderingen

obj is geen Tuple<T1,T2> object.

Voorbeelden

In het volgende voorbeeld wordt een matrix gemaakt met objecten die bestaan uit de naam en testscore van Tuple<T1,T2> een leerling/student. Het bevat het onderdeel van elke tuple in de matrix in niet-gesorteerde volgorde, sorteert de matrix en roept ToString vervolgens aan om de waarde van elke tuple in gesorteerde volgorde weer te geven. In de uitvoer ziet u dat de matrix is gesorteerd op het eerste onderdeel. Houd er rekening mee dat in het voorbeeld de methode niet rechtstreeks wordt aangeroepen IComparable.CompareTo(Object) . Deze methode wordt impliciet aangeroepen door de Sort(Array) methode voor elk element in de matrix.

using System;

public class Example
{
   public static void Main()
   {
      Tuple<string, Nullable<int>>[] scores = 
                    { new Tuple<string, Nullable<int>>("Jack", 78),
                      new Tuple<string, Nullable<int>>("Abbey", 92), 
                      new Tuple<string, Nullable<int>>("Dave", 88),
                      new Tuple<string, Nullable<int>>("Sam", 91), 
                      new Tuple<string, Nullable<int>>("Ed", null),
                      new Tuple<string, Nullable<int>>("Penelope", 82),
                      new Tuple<string, Nullable<int>>("Linda", 99),
                      new Tuple<string, Nullable<int>>("Judith", 84) };

      Console.WriteLine("The values in unsorted order:");
      foreach (Tuple<string, Nullable<int>> score in scores)
         Console.WriteLine(score.ToString());

      Console.WriteLine();

      Array.Sort(scores);

      Console.WriteLine("The values in sorted order:");
      foreach (Tuple<string, Nullable<int>> score in scores)
         Console.WriteLine(score.ToString());
   }
}
// The example displays the following output;
//       The values in unsorted order:
//       (Jack, 78)
//       (Abbey, 92)
//       (Dave, 88)
//       (Sam, 91)
//       (Ed, )
//       (Penelope, 82)
//       (Linda, 99)
//       (Judith, 84)
//       
//       The values in sorted order:
//       (Abbey, 92)
//       (Dave, 88)
//       (Ed, )
//       (Jack, 78)
//       (Judith, 84)
//       (Linda, 99)
//       (Penelope, 82)
//       (Sam, 91)
open System

let scores = 
    [| Tuple<string, Nullable<int>>("Jack", 78)
       Tuple<string, Nullable<int>>("Abbey", 92) 
       Tuple<string, Nullable<int>>("Dave", 88)
       Tuple<string, Nullable<int>>("Sam", 91) 
       Tuple<string, Nullable<int>>("Ed", Nullable())
       Tuple<string, Nullable<int>>("Penelope", 82)
       Tuple<string, Nullable<int>>("Linda", 99)
       Tuple<string, Nullable<int>>("Judith", 84) |]

printfn "The values in unsorted order:"
for score in scores do
    printfn $"{score}"

printfn ""

Array.Sort scores

printfn "The values in sorted order:"
for score in scores do
    printfn $"{score}"
// The example displays the following output
//       The values in unsorted order:
//       (Jack, 78)
//       (Abbey, 92)
//       (Dave, 88)
//       (Sam, 91)
//       (Ed, )
//       (Penelope, 82)
//       (Linda, 99)
//       (Judith, 84)
//       
//       The values in sorted order:
//       (Abbey, 92)
//       (Dave, 88)
//       (Ed, )
//       (Jack, 78)
//       (Judith, 84)
//       (Linda, 99)
//       (Penelope, 82)
//       (Sam, 91)
Module Example
   Public Sub Main()
      Dim scores() As Tuple(Of String, Nullable(Of Integer)) = 
                      { New Tuple(Of String, Nullable(Of Integer))("Jack", 78),
                        New Tuple(Of String, Nullable(Of Integer))("Abbey", 92), 
                        New Tuple(Of String, Nullable(Of Integer))("Dave", 88),
                        New Tuple(Of String, Nullable(Of Integer))("Sam", 91), 
                        New Tuple(Of String, Nullable(Of Integer))("Ed", Nothing),
                        New Tuple(Of String, Nullable(Of Integer))("Penelope", 82),
                        New Tuple(Of String, Nullable(Of Integer))("Linda", 99),
                        New Tuple(Of String, Nullable(Of Integer))("Judith", 84) }

      Console.WriteLine("The values in unsorted order:")
      For Each score In scores
         Console.WriteLine(score.ToString())
      Next
      Console.WriteLine()

      Array.Sort(scores)

      Console.WriteLine("The values in sorted order:")
      For Each score In scores
         Console.WriteLine(score.ToString())
      Next
   End Sub
End Module
' The example displays the following output;
'       The values in unsorted order:
'       (Jack, 78)
'       (Abbey, 92)
'       (Dave, 88)
'       (Sam, 91)
'       (Ed, )
'       (Penelope, 82)
'       (Linda, 99)
'       (Judith, 84)
'       
'       The values in sorted order:
'       (Abbey, 92)
'       (Dave, 88)
'       (Ed, )
'       (Jack, 78)
'       (Judith, 84)
'       (Linda, 99)
'       (Penelope, 82)
'       (Sam, 91)

Opmerkingen

Dit lid is een expliciete implementatie van interfaceleden. Deze kan alleen worden gebruikt wanneer het Tuple<T1,T2> exemplaar naar een IComparable interface wordt gecast.

Deze methode biedt de IComparable.CompareTo implementatie voor de Tuple<T1,T2> klasse. Hoewel de methode rechtstreeks kan worden aangeroepen, wordt deze meestal aangeduid met de standaard overbelasting van sorteermethoden voor verzamelingen, zoals Array.Sort(Array) en SortedList.Add, om de leden van een verzameling te ordenen.

Caution

De Tuple<T1,T2>.IComparable.CompareTo methode is bedoeld voor gebruik in sorteerbewerkingen. Het mag niet worden gebruikt wanneer het primaire doel van een vergelijking is om te bepalen of twee objecten gelijk zijn. Als u wilt bepalen of twee objecten gelijk zijn, roept u de Equals methode aan.

De Tuple<T1,T2>.IComparable.CompareTo methode gebruikt de standaardobjectvergelijker om elk onderdeel te vergelijken.

Van toepassing op

Zie ook