Tuple<T1,T2,T3,T4,T5,T6,T7>.IComparable.CompareTo(Object) Метод
Определение
Важно!
Некоторые сведения относятся к предварительной версии продукта, в которую до выпуска могут быть внесены существенные изменения. Майкрософт не предоставляет никаких гарантий, явных или подразумеваемых, относительно приведенных здесь сведений.
Сравнивает текущий объект Tuple<T1,T2,T3,T4,T5,T6,T7> с заданным объектом и возвращает целое число, указывающее, находится ли текущий объект в той же позиции, что и указанный объект, после него или перед ним в порядке сортировки.
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
Параметры
- obj
- Object
Объект для сравнения с текущим экземпляром.
Возвращаемое значение
Целое число со знаком, определяющее относительное положение экземпляра и параметра obj
в порядке сортировки, как показано в следующей таблице.
Значение | Описание |
---|---|
Отрицательное целое число | Данный экземпляр предшествует параметру obj .
|
Нуль | У этого экземпляра та же позиция в порядке сортировки, что и у obj .
|
Положительное целое число | Данный экземпляр стоит после параметра obj .
|
Реализации
Исключения
obj
не является объектом Tuple<T1,T2,T3,T4,T5,T6,T7>.
Примеры
В следующем примере создается массив объектов, содержащих данные о населении Tuple<T1,T2,T3,T4,T5,T6,T7> для трех городов в США с 1950 по 2000 год. Семь компонентов состоят из названия города, за которым следует население города с 10-летними интервалами с 1950 по 2000 год. В этом примере показаны компоненты каждого кортежа в массиве в несортированном порядке, сортирует массив, а затем вызывает ToString метод для отображения каждого кортежа в отсортированных порядках. В выходных данных показано, что массив был отсортирован по имени, который является первым компонентом. Обратите внимание, что в примере метод не вызывается IComparable.CompareTo(Object) напрямую. Этот метод вызывается неявно методом Sort(Array) для каждого элемента в массиве.
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)
Комментарии
Этот член представляет собой явную реализацию члена интерфейса. Он может использоваться, только если экземпляр Tuple<T1,T2,T3,T4,T5,T6,T7> приведен к типу интерфейса IComparable.
Этот метод предоставляет реализацию IComparable.CompareTo для Tuple<T1,T2,T3,T4,T5,T6,T7> класса. Хотя метод можно вызвать напрямую, он чаще всего вызывается перегрузками по умолчанию методов сортировки коллекций, таких как Array.Sort(Array) и SortedList.Add, чтобы упорядочить элементы коллекции.
Внимание!
Этот IComparable.CompareTo метод предназначен для использования в операциях сортировки. Его не следует использовать, если основной целью сравнения является определение того, равны ли два объекта. Чтобы определить, равны ли два объекта, вызовите Tuple<T1,T2,T3,T4,T5,T6,T7>.Equals(Object) метод.
Этот метод использует средство сравнения объектов по умолчанию для сравнения каждого компонента.