Tuple<T1>.IComparable.CompareTo(Object) Metod
Definition
Viktigt
En del information gäller för förhandsversionen av en produkt och kan komma att ändras avsevärt innan produkten blir allmänt tillgänglig. Microsoft lämnar inga garantier, uttryckliga eller underförstådda, avseende informationen som visas här.
Jämför det aktuella Tuple<T1> objektet med ett angivet objekt och returnerar ett heltal som anger om det aktuella objektet är före, efter eller i samma position som det angivna objektet i sorteringsordningen.
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
Parametrar
- obj
- Object
Ett objekt som ska jämföras med den aktuella instansen.
Returer
Ett signerat heltal som anger den relativa positionen för den här instansen och obj i sorteringsordningen, enligt följande tabell.
| Värde | Beskrivning |
|---|---|
| Ett negativt heltal | Den här instansen föregår obj.
|
| Noll | Den här instansen och obj har samma position i sorteringsordningen.
|
| Ett positivt heltal | Den här instansen följer obj.
|
Implementeringar
Undantag
obj är inte ett Tuple<T1> objekt.
Exempel
I följande exempel skapas en matris med singletons vars komponent är ett Double värde. Den visar värdet för varje tuppelns komponent i osorterad ordning, sorterar matrisen och visar sedan värdena i sorterad ordning. Observera att exemplet inte anropar Tuple<T1>.IComparable.CompareTo metoden direkt. Den här metoden anropas implicit av Sort(Array) metoden för varje element i matrisen.
using System;
class Example
{
static void Main()
{
Tuple<Double>[] values = { Tuple.Create(13.54),
Tuple.Create(Double.NaN),
Tuple.Create(-189.42993),
Tuple.Create(Double.PositiveInfinity),
Tuple.Create(Double.Epsilon),
Tuple.Create(1.934E-17),
Tuple.Create(Double.NegativeInfinity),
Tuple.Create(-0.000000000003588),
null };
Console.WriteLine("The values in unsorted order:");
foreach (var value in values)
if (value != null)
Console.WriteLine(" {0}", value.Item1);
else
Console.WriteLine(" <null>");
Console.WriteLine();
Array.Sort(values);
Console.WriteLine("The values in sorted order:");
foreach (var value in values)
if (value != null)
Console.WriteLine(" {0}", value.Item1);
else
Console.WriteLine(" <null>");
}
}
// The example displays the following output:
// The values in unsorted order:
// 13.54
// NaN
// -189.42993
// Infinity
// 4.94065645841247E-324
// 1.934E-17
// -Infinity
// -3.588E-12
//
// The values in sorted order:
// NaN
// -Infinity
// -189.42993
// -3.588E-12
// 4.94065645841247E-324
// 1.934E-17
// 13.54
// Infinity
open System
let values =
[| Tuple.Create 13.54
Tuple.Create Double.NaN
Tuple.Create -189.42993
Tuple.Create Double.PositiveInfinity
Tuple.Create Double.Epsilon
Tuple.Create 1.934E-17
Tuple.Create Double.NegativeInfinity
Tuple.Create -0.000000000003588
null |]
printfn "The values in unsorted order:"
for value in values do
printfn $" %A{value.Item1}"
printfn ""
Array.Sort values
printfn "The values sorted in descending order:"
for value in values do
printfn $" %A{value.Item1}"
// The example displays the following output:
// The values in unsorted order:
// 13.54
// NaN
// -189.42993
// Infinity
// 4.94065645841247E-324
// 1.934E-17
// -Infinity
// -3.588E-12
//
// The values in sorted order:
// NaN
// -Infinity
// -189.42993
// -3.588E-12
// 4.94065645841247E-324
// 1.934E-17
// 13.54
// Infinity
Module Example
Sub Main()
Dim values() = { Tuple.Create(13.54),
Tuple.Create(Double.NaN),
Tuple.Create(-189.42993),
Tuple.Create(Double.PositiveInfinity),
Tuple.Create(Double.Epsilon),
Tuple.Create(1.934E-17),
Tuple.Create(Double.NegativeInfinity),
Tuple.Create(-0.000000000003588),
Nothing}
Console.WriteLine("The values in unsorted order:")
For Each value In values
If value IsNot Nothing Then
Console.WriteLine(" {0}", value.Item1)
Else
Console.WriteLine(" <null>")
End If
Next
Console.WriteLine()
Array.Sort(values)
Console.WriteLine("The values in sorted order:")
For Each value In values
If value IsNot Nothing Then
Console.WriteLine(" {0}", value.Item1)
Else
Console.WriteLine(" <null>")
End If
Next
End Sub
End Module
' The example displays the following output:
' The values in unsorted order:
' 13.54
' NaN
' -189.42993
' Infinity
' 4.94065645841247E-324
' 1.934E-17
' -Infinity
' -3.588E-12
'
' The values in sorted order:
' NaN
' -Infinity
' -189.42993
' -3.588E-12
' 4.94065645841247E-324
' 1.934E-17
' 13.54
' Infinity
Kommentarer
Den här medlemmen är en explicit implementering av gränssnittsmedlemmar. Den kan endast användas när instansen Tuple<T1> skickas till ett IComparable gränssnitt.
Den här metoden tillhandahåller implementeringen IComparable.CompareTo för Tuple<T1> klassen. Även om metoden kan anropas direkt, anropas den oftast av standardöverlagringarna av insamlingssorteringsmetoder, till exempel Array.Sort(Array) och SortedList.Add, för att beställa medlemmar i en samling.
Caution
Metoden Tuple<T1>.IComparable.CompareTo är avsedd att användas i sorteringsåtgärder. Den bör inte användas när det primära syftet med en jämförelse är att avgöra om två objekt är lika med. Om du vill avgöra om två objekt är lika med anropar du Equals metoden.
Metoden Tuple<T1>.IComparable.CompareTo använder standardobjektjäxeraren.