Guid.IComparable.CompareTo(Object) Method

Definition

Compares this instance to a specified Guid object and returns an indication of their relative values.

 virtual int System.IComparable.CompareTo(System::Object ^ value) = IComparable::CompareTo;
int IComparable.CompareTo (object value);
abstract member System.IComparable.CompareTo : obj -> int
override this.System.IComparable.CompareTo : obj -> int
Function CompareTo (value As Object) As Integer Implements IComparable.CompareTo

Parameters

value
Object

An object to compare to this instance.

Returns

A signed number indicating the relative values of this instance and value.

Return valueDescription
A negative integerThis instance is less than value.
ZeroThis instance is equal to value.
A positive integerThis instance is greater than value.

Implements

Remarks

This member is an explicit interface member implementation. It can only be used when the Guid instance is cast to an IComparable interface.

The CompareTo method compares the GUIDs as if they were values provided to the Guid(Int32, Int16, Int16, Byte[]) constructor, as follows:

  • It compares the UInt32 values, and returns a result if they are unequal. If they are equal, it performs the next comparison.
  • It compares the first UInt16 values, and returns a result if they are unequal. If they are equal, it performs the next comparison.
  • It compares the second UInt16 values, and returns a result if they are unequal. If they are equal, it performs the next comparison.
  • If performs a byte-by-byte comparison of the next eight Byte values. When it encounters the first unequal pair, it returns the result. Otherwise, it returns 0 to indicate that the two Guid values are equal.

Note that the final eight bytes appear in the string representation of a Guid in reverse order, from low byte to high byte. For example, in the string representation of the Guid value "01e75c83-c6f5-4192-b57e-7427cec5560d", the final eight bytes are "b57e-7427cec5560d." In other words, the final eight bytes are compared on a byte-by-byte basis from left to right starting with 0xb5.

If two GUIDs have equal values for a component, the method compares the next component. When it finds a component whose values are unequal, it returns the result.

This method implements the System.IComparable<T> interface and performs slightly better than the Guid.CompareTo method because it does not have to convert the value parameter to a Guid value.

Applies to