What's the difference between IComparable & IEquatable interfaces?
both the interfaces seem to compare objects for equality, so what's the major differences between them? IEquatable tests whether two objects are equal. IComparable imposes a total ordering on the objects being compared. For example, IEquatable would tell you that 5 is not equal to 7. IComparable would tell you that 5 comes before 7. IEquatable<T> for equality. IComparable<T> for ordering. In addition to Greg D's answer: You might implement IComparable without implementing IEquatable for a class where a partial ordering makes sense, and where very definitely you wish the consumer to draw the