Updated: June 2010
Compares two objects and returns a value indicating whether one is less than, equal to, or greater than the other.
Assembly: mscorlib (in mscorlib.dll)
Function Compare ( _ x As T, _ y As T _ ) As Integer
int Compare(
T x,
T y
)
int Compare(
T x,
T y
)
abstract Compare : x:'T * y:'T -> int
Return Value
Type: System.Int32A signed integer that indicates the relative values of x and y, as shown in the following table.
Value | Meaning |
|---|---|
Less than zero | x is less than y. |
Zero | x equals y. |
Greater than zero | x is greater than y. |
Implement this method to provide a customized sort order comparison for type T.
Comparing null with any reference type is allowed and does not generate an exception. A null reference is considered to be less than any reference that is not null.
The following example implements the IComparer<T> interface to compare objects of type Box according to their dimensions. This example is part of a larger example provided for the Comparer<T> class.
' This class is not demonstrated in the Main method ' and is provided only to show how to implement ' the interface. It is recommended to derive ' from Comparer<T> instead of implementing IComparer<T>. Public Class BoxComp Implements IComparer(Of Box) ' Compares by Height, Length, and Width. Public Function Compare(ByVal x As Box, ByVal y As Box) As Integer Implements _ IComparer(Of Box).Compare If x.Height.CompareTo(y.Height) <> 0 Then Return x.Height.CompareTo(y.Height) ElseIf x.Length.CompareTo(y.Length) <> 0 Then Return x.Length.CompareTo(y.Length) ElseIf x.Width.CompareTo(y.Width) <> 0 Then Return x.Width.CompareTo(y.Width) Else Return 0 End If End Function End Class
// This class is not demonstrated in the Main method // and is provided only to show how to implement // the interface. It is recommended to derive // from Comparer<T> instead of implementing IComparer<T>. public class BoxComp : IComparer<Box> { // Compares by Height, Length, and Width. public int Compare(Box x, Box y) { if (x.Height.CompareTo(y.Height) != 0) { return x.Height.CompareTo(y.Height); } else if (x.Length.CompareTo(y.Length) != 0) { return x.Length.CompareTo(y.Length); } else if (x.Width.CompareTo(y.Width) != 0) { return x.Width.CompareTo(y.Width); } else { return 0; } } }
.NET Framework
Supported in: 4, 3.5, 3.0, 2.0.NET Framework Client Profile
Supported in: 4, 3.5 SP1Portable Class Library
Supported in: Portable Class LibraryWindows 7, Windows Vista SP1 or later, Windows XP SP3, Windows XP SP2 x64 Edition, Windows Server 2008 (Server Core not supported), Windows Server 2008 R2 (Server Core supported with SP1 or later), Windows Server 2003 SP2
The .NET Framework does not support all versions of every platform. For a list of the supported versions, see .NET Framework System Requirements.
Reference
|
Date |
History |
Reason |
|---|---|---|
|
June 2010 |
Added example. |
Information enhancement. |