Comparer<T>.Compare Method (T, T)
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.
Assembly: mscorlib (in mscorlib.dll)
Return Value
Type: System.Int32A 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<T>.Compare(T, T)| Exception | Condition |
|---|---|
| ArgumentException | Type T does not implement either the System.IComparable<T> generic interface or the System.IComparable interface. |
Implement this method to provide a customized sort order comparison for type T.
Notes to Implementers:
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.
For information on culture-specific comparisons, see the System.Globalization namespace and Globalizing and Localizing .NET Framework Applications.
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<T> class.
public class BoxLengthFirst : Comparer<Box> { // Compares by Length, Height, and Width. public override int Compare(Box x, Box y) { if (x.Length.CompareTo(y.Length) != 0) { return x.Length.CompareTo(y.Length); } else if (x.Height.CompareTo(y.Height) != 0) { return x.Height.CompareTo(y.Height); } else if (x.Width.CompareTo(y.Width) != 0) { return x.Width.CompareTo(y.Width); } else { return 0; } } }
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