Compare(Object, Object) Method
Some information relates to prerelease product that may be substantially modified before it’s released. Microsoft makes no warranties, express or implied, with respect to the information provided here.
Compares two objects and returns a value indicating whether one is less than, equal to, or greater than the other.
virtual int System.Collections.IComparer.Compare(System::Object ^ x, System::Object ^ y) = System::Collections::IComparer::Compare;
int IComparer.Compare (object x, object y);
abstract member System.Collections.IComparer.Compare : obj * obj -> int override this.System.Collections.IComparer.Compare : obj * obj -> int
Function Compare (x As Object, y As Object) As Integer Implements IComparer.Compare
The first object to compare.
The second object to compare.
A signed integer that indicates the relative values of
y, as shown in the following table.
|Less than zero|
|Greater than zero|
y is of a type that cannot be cast to type
y do not implement either the IComparable<T> generic interface or the IComparable interface.
The following example shows how to use the IComparer.Compare method to compare two objects. This example is part of a larger example provided for the Comparer<T> class.
// This explicit interface implementation // compares first by the length. // Returns -1 because the length of BoxA // is less than the length of BoxB. BoxLengthFirst LengthFirst = new BoxLengthFirst(); Comparer<Box> bc = (Comparer<Box>) LengthFirst; Box BoxA = new Box(2, 6, 8); Box BoxB = new Box(10, 12, 14); int x = LengthFirst.Compare(BoxA, BoxB); Console.WriteLine(); Console.WriteLine(x.ToString());
' This explicit interface implementation ' compares first by the length. ' Returns -1 because the length of BoxA ' is less than the length of BoxB. Dim LengthFirst As New BoxLengthFirst() Dim bc As Comparer(Of Box) = CType(LengthFirst, Comparer(Of Box)) Dim BoxA As New Box(2, 6, 8) Dim BoxB As New Box(10, 12, 14) Dim x As Integer = LengthFirst.Compare(BoxA, BoxB) Console.WriteLine() Console.WriteLine(x.ToString())
This method is a wrapper for the Compare(T, T) method, so
obj must be cast to the type specified by the generic argument
T of the current instance. If it cannot be cast to
T, an ArgumentException is thrown.
null with any reference type is allowed and does not generate an exception. When sorting,
null is considered to be less than any other object.
Notes to Callers
Compare(T, T) and Equals(T, T) behave differently in terms of culture-sensitivity and case-sensitivity.
For string comparisons, the StringComparer class is recommended over
Comparer<String>. Properties of the StringComparer class return predefined instances that perform string comparisons with different combinations of culture-sensitivity and case-sensitivity. The case-sensitivity and culture-sensitivity are consistent among the members of the same StringComparer instance.
For more information on culture-specific comparisons, see the System.Globalization namespace and Globalization and Localization.