Expand
Comparer(Of T).Compare Method

Updated: May 2010

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)
Syntax

'Declaration

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

Parameters

x
Type: T
The first object to compare.
y
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.

Value

Meaning

Less than zero

x is less than y.

Zero

x equals y.

Greater than zero

x is greater than y.

Implements

IComparer(Of T).Compare(T, T)
Exceptions

ExceptionCondition
ArgumentException

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

Remarks

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

Notes to Implementers

Comparing Nothing 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 Encoding and Localization.

Examples

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)
		Else
			Return 0
		End If
	End Function

End Class


Platforms

Windows 7, Windows Vista SP1 or later, Windows XP SP3, Windows XP SP2 x64 Edition, Windows Server 2008 (Server Core Role not supported), Windows Server 2008 R2 (Server Core Role not supported), 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.
Version Information

.NET Framework

Supported in: 4, 3.5, 3.0, 2.0

.NET Framework Client Profile

Supported in: 4, 3.5 SP1
Change History

Date

History

Reason

May 2010

Added example.

Information enhancement.

Community ContentAdd
Page view tracker