Tuple<T1,T2,T3,T4>.IComparable.CompareTo(Object) Метод
Определение
Важно!
Некоторые сведения относятся к предварительной версии продукта, в которую до выпуска могут быть внесены существенные изменения. Майкрософт не предоставляет никаких гарантий, явных или подразумеваемых, относительно приведенных здесь сведений.
Сравнивает текущий объект Tuple<T1,T2,T3,T4> с заданным объектом и возвращает целое число, указывающее, находится ли текущий объект в той же позиции, что и указанный объект, после него или перед ним в порядке сортировки.
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>.
Примеры
В следующем примере создается массив Tuple<T1,T2,T3,T4> объектов, компоненты которых состоят из имени бейсбольного кувшина, количества иннингов и количества попаданий и полученных запусков. Он отображает компоненты каждого кортежа в массиве в несортированном порядке, сортирует массив, а затем вызывает ToString отображение каждого кортежа в сортировке. В выходных данных показано, что массив был отсортирован по имени, который является первым компонентом. Обратите внимание, что в примере метод не вызывается IComparable.CompareTo(Object) напрямую. Этот метод вызывается неявно методом Sort(Array) для каждого элемента в массиве.
using System;
using System.Collections.Generic;
public class Example
{
public static void Main()
{
Tuple<string, decimal, int, int>[] pitchers =
{ Tuple.Create("McHale, Joe", 240.1m, 221, 96),
Tuple.Create("Paul, Dave", 233.1m, 231, 84),
Tuple.Create("Williams, Mike", 193.2m, 183, 86),
Tuple.Create("Blair, Jack", 168.1m, 146, 65),
Tuple.Create("Henry, Walt", 140.1m, 96, 30),
Tuple.Create("Lee, Adam", 137.2m, 109, 45),
Tuple.Create("Rohr, Don", 101.0m, 110, 42) };
// Display the array in unsorted order.
Console.WriteLine("The values in unsorted order:");
foreach (var pitcher in pitchers)
Console.WriteLine(pitcher.ToString());
Console.WriteLine();
// Sort the array
Array.Sort(pitchers);
// Display the array in sorted order.
Console.WriteLine("The values in sorted order:");
foreach (var pitcher in pitchers)
Console.WriteLine(pitcher.ToString());
}
}
// The example displays the following output;
// The values in unsorted order:
// (McHale, Joe, 240.1, 221, 96)
// (Paul, Dave, 233.1, 231, 84)
// (Williams, Mike, 193.2, 183, 86)
// (Blair, Jack, 168.1, 146, 65)
// (Henry, Walt, 140.1, 96, 30)
// (Lee, Adam, 137.2, 109, 45)
// (Rohr, Don, 101, 110, 42)
//
// The values in sorted order:
// (Blair, Jack, 168.1, 146, 65)
// (Henry, Walt, 140.1, 96, 30)
// (Lee, Adam, 137.2, 109, 45)
// (McHale, Joe, 240.1, 221, 96)
// (Paul, Dave, 233.1, 231, 84)
// (Rohr, Don, 101, 110, 42)
// (Williams, Mike, 193.2, 183, 86)
open System
let pitchers =
[| Tuple.Create("McHale, Joe", 240.1m, 221, 96)
Tuple.Create("Paul, Dave", 233.1m, 231, 84)
Tuple.Create("Williams, Mike", 193.2m, 183, 86)
Tuple.Create("Blair, Jack", 168.1m, 146, 65)
Tuple.Create("Henry, Walt", 140.1m, 96, 30)
Tuple.Create("Lee, Adam", 137.2m, 109, 45)
Tuple.Create("Rohr, Don", 101.0m, 110, 42) |]
// Display the array in unsorted order.
printfn "The values in unsorted order:"
for pitcher in pitchers do
printfn $"{pitcher}"
printfn ""
// Sort the array
Array.Sort pitchers
// Display the array in sorted order.
printfn "The values in sorted order:"
for pitcher in pitchers do
printfn $"{pitcher}"
// The example displays the following output
// The values in unsorted order:
// (McHale, Joe, 240.1, 221, 96)
// (Paul, Dave, 233.1, 231, 84)
// (Williams, Mike, 193.2, 183, 86)
// (Blair, Jack, 168.1, 146, 65)
// (Henry, Walt, 140.1, 96, 30)
// (Lee, Adam, 137.2, 109, 45)
// (Rohr, Don, 101, 110, 42)
//
// The values in sorted order:
// (Blair, Jack, 168.1, 146, 65)
// (Henry, Walt, 140.1, 96, 30)
// (Lee, Adam, 137.2, 109, 45)
// (McHale, Joe, 240.1, 221, 96)
// (Paul, Dave, 233.1, 231, 84)
// (Rohr, Don, 101, 110, 42)
// (Williams, Mike, 193.2, 183, 86)
Imports System.Collections.Generic
Module Example
Public Sub Main()
Dim pitchers() =
{ Tuple.Create("McHale, Joe", 240.1d, 221, 96),
Tuple.Create("Paul, Dave", 233.1d, 231, 84),
Tuple.Create("Williams, Mike", 193.2d, 183, 86),
Tuple.Create("Blair, Jack", 168.1d, 146, 65),
Tuple.Create("Henry, Walt", 140.1d, 96, 30),
Tuple.Create("Lee, Adam", 137.2d, 109, 45),
Tuple.Create("Rohr, Don", 101.0d, 110, 42) }
' Display the array in unsorted order.
Console.WriteLine("The values in unsorted order:")
For Each pitcher In pitchers
Console.WriteLine(pitcher.ToString())
Next
Console.WriteLine()
' Sort the array
Array.Sort(pitchers)
' Display the array in sorted order.
Console.WriteLine("The values in sorted order:")
For Each pitcher In pitchers
Console.WriteLine(pitcher.ToString())
Next
End Sub
End Module
' The example displays the following output:
' The values in unsorted order:
' (McHale, Joe, 240.1, 221, 96)
' (Paul, Dave, 233.1, 231, 84)
' (Williams, Mike, 193.2, 183, 86)
' (Blair, Jack, 168.1, 146, 65)
' (Henry, Walt, 140.1, 96, 30)
' (Lee, Adam, 137.2, 109, 45)
' (Rohr, Don, 101, 110, 42)
'
' The values in sorted order:
' (Blair, Jack, 168.1, 146, 65)
' (Henry, Walt, 140.1, 96, 30)
' (Lee, Adam, 137.2, 109, 45)
' (McHale, Joe, 240.1, 221, 96)
' (Paul, Dave, 233.1, 231, 84)
' (Rohr, Don, 101, 110, 42)
' (Williams, Mike, 193.2, 183, 86)
Комментарии
Этот член представляет собой явную реализацию члена интерфейса. Он может использоваться, только если экземпляр Tuple<T1,T2,T3,T4> приведен к типу интерфейса IComparable.
Этот метод предоставляет реализацию IComparable.CompareTo для Tuple<T1,T2,T3,T4> класса. Хотя метод можно вызывать напрямую, он чаще всего вызывается перегрузками по умолчанию методов сортировки коллекций, таких как Array.Sort(Array) и SortedList.Addдля упорядочивания элементов коллекции.
Внимание!
Этот IComparable.CompareTo метод предназначен для использования в операциях сортировки. Его не следует использовать, если основной целью сравнения является определение того, равны ли два объекта. Чтобы определить, равны ли два объекта, вызовите Equals метод.
Метод IComparable.CompareTo использует средство сравнения объектов по умолчанию для сравнения каждого компонента.