Udostępnij za pośrednictwem


Tuple<T1,T2,T3,T4,T5,T6,T7>.IComparable.CompareTo(Object) Metoda

Definicja

Porównuje bieżący Tuple<T1,T2,T3,T4,T5,T6,T7> obiekt z określonym obiektem i zwraca liczbę całkowitą wskazującą, czy bieżący obiekt znajduje się przed, po, czy w tej samej pozycji co określony obiekt w kolejności sortowania.

 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

Obiekt, który ma zostać porównany z bieżącym wystąpieniem.

Zwraca

Int32

Podpisana liczba całkowita wskazująca względną pozycję tego wystąpienia i obj w kolejności sortowania, jak pokazano w poniższej tabeli.

Wartość Opis
Ujemna liczba całkowita To wystąpienie poprzedza obj.
Zero To wystąpienie i obj mają tę samą pozycję w kolejności sortowania.
Dodatnia liczba całkowita To wystąpienie jest następujące: obj.

Implementuje

Wyjątki

Przykłady

Poniższy przykład tworzy tablicę Tuple<T1,T2,T3,T4,T5,T6,T7> obiektów zawierających dane populacji dla trzech miast w Stany Zjednoczone z 1950 do 2000. Siedem składników składa się z nazwy miasta, a następnie populacji miasta w odstępach od 10 lat od 1950 do 2000 roku. W przykładzie przedstawiono składniki każdej krotki w tablicy w kolejności niesortowanej, sortuje tablicę, a następnie wywołuje ToString metodę w celu wyświetlenia każdej krotki w kolejności sortowania. Dane wyjściowe pokazują, że tablica jest posortowana według nazw i który element jest pierwszy. Należy pamiętać, że przykład nie wywołuje IComparable.CompareTo(Object) metody bezpośrednio. Ta metoda jest wywoływana niejawnie przez metodę Sort(Array) dla każdego elementu w tablicy.

using System;

public class Example
{
   public static void Main()
   {
      // Create array of sextuple with population data for three U.S. 
      // cities, 1950-2000.
      Tuple<string, int, int, int, int, int, int>[] cities = 
          { Tuple.Create("Los Angeles", 1970358, 2479015, 2816061, 2966850, 3485398, 3694820),
            Tuple.Create("New York", 7891957, 7781984, 7894862, 7071639, 7322564, 8008278),  
            Tuple.Create("Chicago", 3620962, 3550904, 3366957, 3005072, 2783726, 2896016) }; 
      
      // Display array in unsorted order.
      Console.WriteLine("In unsorted order:");
      foreach (var city in cities)
         Console.WriteLine(city.ToString());

      Console.WriteLine();
      
      Array.Sort(cities);
                           
      // Display array in sorted order.
      Console.WriteLine("In sorted order:");
      foreach (var city in cities)
         Console.WriteLine(city.ToString());
   }
}
// The example displays the following output:
//    In unsorted order:
//    (Los Angeles, 1970358, 2479015, 2816061, 2966850, 3485398, 3694820)
//    (New York, 7891957, 7781984, 7894862, 7071639, 7322564, 8008278)
//    (Chicago, 3620962, 3550904, 3366957, 3005072, 2783726, 2896016)
//    
//    In sorted order:
//    (Chicago, 3620962, 3550904, 3366957, 3005072, 2783726, 2896016)
//    (Los Angeles, 1970358, 2479015, 2816061, 2966850, 3485398, 3694820)
//    (New York, 7891957, 7781984, 7894862, 7071639, 7322564, 8008278)
open System

// Create array of sextuple with population data for three U.S. 
// cities, 1950-2000.
let cities = 
    [| Tuple.Create("Los Angeles", 1970358, 2479015, 2816061, 2966850, 3485398, 3694820)
       Tuple.Create("New York", 7891957, 7781984, 7894862, 7071639, 7322564, 8008278) 
       Tuple.Create("Chicago", 3620962, 3550904, 3366957, 3005072, 2783726, 2896016) |]

// Display array in unsorted order.
printfn $"In unsorted order:"
for city in cities do
    printfn $"{city}"

printfn ""

Array.Sort cities
                    
// Display array in sorted order.
printfn "In sorted order:"
for city in cities do
    printfn $"{city}"
// The example displays the following output:
//    In unsorted order:
//    (Los Angeles, 1970358, 2479015, 2816061, 2966850, 3485398, 3694820)
//    (New York, 7891957, 7781984, 7894862, 7071639, 7322564, 8008278)
//    (Chicago, 3620962, 3550904, 3366957, 3005072, 2783726, 2896016)
//    
//    In sorted order:
//    (Chicago, 3620962, 3550904, 3366957, 3005072, 2783726, 2896016)
//    (Los Angeles, 1970358, 2479015, 2816061, 2966850, 3485398, 3694820)
//    (New York, 7891957, 7781984, 7894862, 7071639, 7322564, 8008278)
Module Example
   Public Sub Main()
      ' Create array of sextuple with population data for three U.S. 
      ' cities, 1950-2000.
      Dim cities() = _
          { Tuple.Create("Los Angeles", 1970358, 2479015, 2816061, 2966850, 3485398, 3694820),
            Tuple.Create("New York", 7891957, 7781984, 7894862, 7071639, 7322564, 8008278),  
            Tuple.Create("Chicago", 3620962, 3550904, 3366957, 3005072, 2783726, 2896016) } 
      
      ' Display array in unsorted order.
      Console.WriteLine("In unsorted order:")
      For Each city In cities
         Console.WriteLine(city.ToString())
      Next
      Console.WriteLine()
      
      Array.Sort(cities) 
                           
      ' Display array in sorted order.
      Console.WriteLine("In sorted order:")
      For Each city In cities
         Console.WriteLine(city.ToString())
      Next
   End Sub
End Module
' The example displays the following output:
'    In unsorted order:
'    (Los Angeles, 1970358, 2479015, 2816061, 2966850, 3485398, 3694820)
'    (New York, 7891957, 7781984, 7894862, 7071639, 7322564, 8008278)
'    (Chicago, 3620962, 3550904, 3366957, 3005072, 2783726, 2896016)
'    
'    In sorted order:
'    (Chicago, 3620962, 3550904, 3366957, 3005072, 2783726, 2896016)
'    (Los Angeles, 1970358, 2479015, 2816061, 2966850, 3485398, 3694820)
'    (New York, 7891957, 7781984, 7894862, 7071639, 7322564, 8008278)

Uwagi

Ten element jest jawną implementacją członków. Można go używać tylko wtedy, gdy Tuple<T1,T2,T3,T4,T5,T6,T7> wystąpienie jest rzutowanie do interfejsu IComparable .

Ta metoda zapewnia implementację IComparable.CompareTo Tuple<T1,T2,T3,T4,T5,T6,T7> klasy. Chociaż metoda może być wywoływana bezpośrednio, jest ona najczęściej wywoływana przez domyślne przeciążenia metod sortowania kolekcji, takich jak Array.Sort(Array) i SortedList.Add, w celu porządkowenia elementów członkowskich kolekcji.

Przestroga

Metoda jest przeznaczona IComparable.CompareTo do użycia w operacjach sortowania. Nie należy jej używać, gdy głównym celem porównania jest ustalenie, czy dwa obiekty są sobie równe. Aby określić, czy dwa obiekty są równe, wywołaj metodę Tuple<T1,T2,T3,T4,T5,T6,T7>.Equals(Object) .

Ta metoda używa domyślnego modułu porównywania obiektów do porównywania każdego składnika.

Dotyczy