Tuple<T1,T2,T3,T4,T5,T6>.IComparable.CompareTo(Object) Metoda
Definicja
Ważne
Niektóre informacje odnoszą się do produktu w wersji wstępnej, który może zostać znacząco zmodyfikowany przed wydaniem. Firma Microsoft nie udziela żadnych gwarancji, jawnych lub domniemanych, w odniesieniu do informacji podanych w tym miejscu.
Porównuje bieżący Tuple<T1,T2,T3,T4,T5,T6> 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
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
obj
nie jest obiektem Tuple<T1,T2,T3,T4,T5,T6> .
Przykłady
Poniższy przykład tworzy tablicę Tuple<T1,T2,T3,T4,T5,T6> obiektów zawierających dane populacji dla trzech miast w Stany Zjednoczone z 1960 do 2000 roku. Sześć składników składa się z nazwy miasta, po której następuje populacja miasta w odstępach od 10 lat od 1960 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, 1960-2000.
Tuple<string, int, int, int, int, int>[] cities =
{ Tuple.Create("Los Angeles", 2479015, 2816061, 2966850, 3485398, 3694820),
Tuple.Create("New York", 7781984, 7894862, 7071639, 7322564, 8008278),
Tuple.Create("Chicago", 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, 2479015, 2816061, 2966850, 3485398, 3694820)
// (New York, 7781984, 7894862, 7071639, 7322564, 8008278)
// (Chicago, 3550904, 3366957, 3005072, 2783726, 2896016)
//
// In sorted order:
// (Chicago, 3550904, 3366957, 3005072, 2783726, 2896016)
// (Los Angeles, 2479015, 2816061, 2966850, 3485398, 3694820)
// (New York, 7781984, 7894862, 7071639, 7322564, 8008278)
open System
// Create array of sextuple with population data for three U.S.
// cities, 1960-2000.
let cities =
[| Tuple.Create("Los Angeles", 2479015, 2816061, 2966850, 3485398, 3694820)
Tuple.Create("New York", 7781984, 7894862, 7071639, 7322564, 8008278)
Tuple.Create("Chicago", 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, 2479015, 2816061, 2966850, 3485398, 3694820)
// (New York, 7781984, 7894862, 7071639, 7322564, 8008278)
// (Chicago, 3550904, 3366957, 3005072, 2783726, 2896016)
//
// In sorted order:
// (Chicago, 3550904, 3366957, 3005072, 2783726, 2896016)
// (Los Angeles, 2479015, 2816061, 2966850, 3485398, 3694820)
// (New York, 7781984, 7894862, 7071639, 7322564, 8008278)
Module Example
Public Sub Main()
' Create array of sextuple with population data for three U.S.
' cities, 1960-2000.
Dim cities() =
{ Tuple.Create("Los Angeles", 2479015, 2816061, 2966850, 3485398, 3694820),
Tuple.Create("New York", 7781984, 7894862, 7071639, 7322564, 8008278),
Tuple.Create("Chicago", 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, 2479015, 2816061, 2966850, 3485398, 3694820)
' (New York, 7781984, 7894862, 7071639, 7322564, 8008278)
' (Chicago, 3550904, 3366957, 3005072, 2783726, 2896016)
'
' In sorted order:
' (Chicago, 3550904, 3366957, 3005072, 2783726, 2896016)
' (Los Angeles, 2479015, 2816061, 2966850, 3485398, 3694820)
' (New York, 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> wystąpienie jest rzutowanie do interfejsu IComparable .
Ta metoda zapewnia implementację IComparable.CompareTo Tuple<T1,T2,T3,T4,T5,T6> 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>.Equals(Object) .
Metoda IComparable.CompareTo(Object) używa domyślnego modułu porównywania obiektów do porównywania każdego składnika.