IComparer(Of T) Interface
Defines a method that a type implements to compare two objects.
Assembly: mscorlib (in mscorlib.dll)
- In T
The type of objects to compare.
This type parameter is contravariant. That is, you can use either the type you specified or any type that is less derived. For more information about covariance and contravariance, see Covariance and Contravariance in Generics.
Thetype exposes the following members.
This interface is used with the List(Of T).Sort and List(Of T).BinarySearch methods. It provides a way to customize the sort order of a collection. Classes that implement this interface include the SortedDictionary(Of TKey, TValue) and SortedList(Of TKey, TValue) generic classes.
This interface supports ordering comparisons. That is, when the Compare method returns 0, it means that two objects sort the same. Implementation of exact equality comparisons is provided by the IEqualityComparer(Of T) generic interface.
We recommend that you derive from the Comparer(Of T) class instead of implementing the interface, because the Comparer(Of T) class provides an explicit interface implementation of the IComparer.Compare method and the Default property that gets the default comparer for the object.
The following example implements the interface to compare objects of type Box according to their dimensions. This example is part of a larger example provided for the Comparer(Of 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
.NET FrameworkSupported in: 4.5, 4, 3.5, 3.0, 2.0
.NET Framework Client ProfileSupported in: 4, 3.5 SP1
Portable Class LibrarySupported in: Portable Class Library
.NET for Windows Store appsSupported in: Windows 8
.NET for Windows Phone appsSupported in: Windows Phone 8.1, Windows Phone Silverlight 8.1, Windows Phone Silverlight 8
Windows Phone 8.1, Windows Phone 8, Windows 8.1, Windows Server 2012 R2, Windows 8, Windows Server 2012, Windows 7, Windows Vista SP2, Windows Server 2008 (Server Core Role not supported), Windows Server 2008 R2 (Server Core Role supported with SP1 or later; Itanium not supported)
The .NET Framework does not support all versions of every platform. For a list of the supported versions, see .NET Framework System Requirements.