您好 我有一个派生自ContentControl的类,我无法覆盖GetHashCode和Equal方法。我收到错误
错误5无法覆盖继承的成员'System.Windows.DependencyObject.GetHashCode()'因为它是密封的 有没有办法覆盖这种方法? 我需要使用LINQ中的Union方法,但是我需要将对象与不同的条件进行比较。有没有办法做到这一点?
答案 0 :(得分:4)
是 - 单独实施IEqualityComparer<T>
,并将其传递到relevant overload of Union
。
基本上你会告诉它如何比较任何两个项目的相等性,以及如何获取任何一个项目的哈希码。在构建哈希集等时,Union
将使用您的自定义比较。您不需要覆盖任何现有方法。