我的類實現IEquatable和IComparable。然後它被添加到一個排序集。Sortedset不使用自定義等於
目標是讓它按照它的「Date」屬性排序,如果「ID1」和「ID2」都相同,那麼它就是相等的。
的實現的方法:
public int CompareTo(MyClass other)
{
return other.Date.CompareTo(Date);
}
public override int GetHashCode()
{
unchecked
{
var hashCode = ID1;
hashCode = (hashCode * 397)^ID2;
return hashCode;
}
}
public bool Equals(MyClass other)
{
if (ReferenceEquals(null, other))
return false;
if (ReferenceEquals(this, other))
return true;
return ID1 == other.ID1
&& ID2 == other.ID2;
}
將所得的SortedSet正確排序,但仍然有應該在組相等,因此不元素。使用斷點看起來既不GetHashCode也不等於被調用。
有關如何解決這個問題的任何提示?