The functionality in CompareTo is actually a superset of functionality of Equals. A CompareTo function dictates ordering, before, after or equals while the Equals function merely dictates equality. Hence it's actually possible to define Equals in terms of CompareTo
public bool Equals(string other) {
return 0 == CompareTo(other);
}