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
)

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;
        }
    }
}

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