Comparer(Of T).Compare Method (T, T)


The .NET API Reference documentation has a new home. Visit the .NET API Browser on to see the new experience.

When overridden in a derived class, performs a comparison of two objects of the same type and returns a value indicating whether one object is less than, equal to, or greater than the other.

Namespace:   System.Collections.Generic
Assembly:  mscorlib (in mscorlib.dll)

Public MustOverride Function Compare (
	x As T,
	y As T
) As Integer


Type: T

The first object to compare.

Type: T

The second object to compare.

Return Value

Type: System.Int32

A signed integer that indicates the relative values of x and y, as shown in the following table.



Less than zero

x is less than y.


x equals y.

Greater than zero

x is greater than y.

Exception Condition

Type T does not implement either the System.IComparable(Of T) generic interface or the System.IComparable interface.

Implement this method to provide a customized sort order comparison for type T.

Notes to Implementers:

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.

For information on culture-specific comparisons, see the System.Globalization namespace and Globalizing and Localizing .NET Framework Applications.

The following example defines a comparer of Box objects that can be used instead of the default comparer. This example is part of a larger example provided for the Comparer(Of T) class.

Public Class BoxLengthFirst
	Inherits Comparer(Of Box)
	' Compares by Length, Height, and Width.
	Public Overrides Function Compare(ByVal x As Box, ByVal y As Box) As Integer
		If x.Length.CompareTo(y.Length) <> 0 Then
			Return x.Length.CompareTo(y.Length)
		ElseIf x.Height.CompareTo(y.Height) <> 0 Then
			Return x.Height.CompareTo(y.Height)
		ElseIf x.Width.CompareTo(y.Width) <> 0 Then
			Return x.Width.CompareTo(y.Width)
			Return 0
		End If
	End Function

End Class

Universal Windows Platform
Available since 8
.NET Framework
Available since 2.0
Portable Class Library
Supported in: portable .NET platforms
Available since 2.0
Windows Phone Silverlight
Available since 7.0
Windows Phone
Available since 8.1
Return to top