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.
A signed integer that indicates the relative values of a and b, as shown in the following table.
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.
If a and b are both strings, this method uses System.Globalization.CompareInfo.Compare(string, string) 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 Encoding and Localization.