according to msdn
IStructuralEquatable
Defines methods to support the comparison of objects for structural
equality. Structural equality means that two objects are equal because
they have equal values. It differs from reference equality, which
indicates that two object references are equal because they reference
the same physical object.
isnt it what Equals should do ? ( when overriding IEquatable) ?
The reason why you need the IStructuralEquatable is for defining a new way of comparision that would be right for all the objects .
For example if you want a list that will sort all its elements by a specific definition.
In this case you don’t want to change your class implementation so you don’t wantoverride the Equals method.
this will define a general way to compare objects in your application.