IComparer<T>.Compare Method

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
)

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.

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);
        }
        else
        {
            return 0;
        }
    }
}

.NET Framework

Supported in: 4.6, 4.5, 4, 3.5, 3.0, 2.0

.NET Framework Client Profile

Supported in: 4, 3.5 SP1

XNA Framework

Supported in: 3.0, 2.0, 1.0

Portable Class Library

Supported in: Portable Class Library

Supported in: Windows Phone 8.1

Supported in: Windows Phone Silverlight 8.1

Supported in: Windows Phone Silverlight 8
Was this page helpful?
(1500 characters remaining)
Thank you for your feedback
Show:
© 2015 Microsoft