Compare Method
Collapse the table of content
Expand the table of content

IComparer<T>.Compare Method (T, T)


Compares two objects and returns a value indicating whether one is less than, equal to, or greater than the other.

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

int Compare(
	T x,
	T y


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.

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 : 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);
            return 0;

Universal Windows Platform
Available since 4.5
.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
© 2015 Microsoft