CaseInsensitiveComparer.Compare(Object, Object) Method

Definition

Performs a case-insensitive comparison of two objects of the same type and returns a value indicating whether one is less than, equal to, or greater than the other.

public:
 virtual int Compare(System::Object ^ a, System::Object ^ b);
public int Compare (object a, object b);
abstract member Compare : obj * obj -> int
override this.Compare : obj * obj -> int
Public Function Compare (a As Object, b As Object) As Integer

Parameters

a
Object

The first object to compare.

b
Object

The second object to compare.

Returns

Int32

A signed integer that indicates the relative values of a and b, as shown in the following table.

Value Meaning
Less than zero a is less than b, with casing ignored.
Zero a equals b, with casing ignored.
Greater than zero a is greater than b, with casing ignored.

Implements

Exceptions

Neither a nor b implements the IComparable interface.

-or-

a and b are of different types.

Remarks

If a and b are both strings, this method uses CompareInfo.Compare to compare the strings with the casing ignored; otherwise, it uses the IComparable implementation of either object. That is, if a implements IComparable, then this method returns the result of a. CompareTo (b); otherwise, if b implements IComparable, then it returns the negated result of b. CompareTo (a).

Comparing null with any type is allowed and does not generate an exception when using IComparable. When sorting, null is considered to be less than any other object.

String comparisons might have different results depending on the culture. For more information on culture-specific comparisons, see the System.Globalization namespace and Globalization and Localization.

Applies to

See also