Tuple<T1,T2>.IComparable.CompareTo(Object) 메서드
정의
중요
일부 정보는 릴리스되기 전에 상당 부분 수정될 수 있는 시험판 제품과 관련이 있습니다. Microsoft는 여기에 제공된 정보에 대해 어떠한 명시적이거나 묵시적인 보증도 하지 않습니다.
현재 Tuple<T1,T2> 개체를 지정된 개체와 비교하고 현재 개체가 정렬 순서에 지정된 개체보다 이전인지, 이후인지 또는 같은 위치인지를 나타내는 정수를 반환합니다.
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 앞에 오는 경우
|
0 | 이 인스턴스와 obj 의 위치가 정렬 순서에서 같은 경우
|
양의 정수 | 이 인스턴스가 obj 다음에 오는 경우
|
구현
예외
obj
이 Tuple<T1,T2> 개체가 아닙니다.
예제
다음 예제에서는 학생의 이름과 시험 점수로 구성된 개체 배열 Tuple<T1,T2> 을 만듭니다. 배열의 각 튜플 구성 요소를 정렬되지 않은 순서로 표시하고 배열을 정렬한 다음 호출 ToString 하여 각 튜플의 값을 정렬된 순서로 표시합니다. 출력은 배열이 첫 번째 구성 요소별로 정렬되었음을 보여줍니다. 이 예제에서는 메서드를 IComparable.CompareTo(Object) 직접 호출하지 않습니다. 이 메서드는 배열의 각 요소에 Sort(Array) 대 한 메서드에 의해 암시적으로 호출됩니다.
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)
설명
이 멤버는 명시적 인터페이스 멤버 구현이며, Tuple<T1,T2> 인스턴스가 IComparable 인터페이스로 캐스팅된 경우에만 사용할 수 있습니다.
이 메서드는 클래스에 IComparable.CompareTo 대한 구현을 Tuple<T1,T2> 제공합니다. 메서드를 직접 호출할 수 있지만 컬렉션의 멤버 순서와 같은 Array.Sort(Array) SortedList.Add컬렉션 정렬 메서드의 기본 오버로드에서 가장 일반적으로 호출됩니다.
주의
이 Tuple<T1,T2>.IComparable.CompareTo 메서드는 정렬 작업에 사용하기 위한 것입니다. 비교의 주요 목적이 두 개체가 같은지 여부를 확인하는 경우에는 사용하지 않아야 합니다. 두 개체가 같은지 여부를 확인하려면 메서드를 호출합니다 Equals .
이 메서드는 Tuple<T1,T2>.IComparable.CompareTo 기본 개체 비교자를 사용하여 각 구성 요소를 비교합니다.