7得票1回答
长整型原始类型的GetHashCode()方法

我正在为一个LINQ中的distinct表达式编写EqualityComparer,但是对于GetHashCode重载方法不太确定。下面的代码是否正确?Id属性是一个长整型基元类型。 public int GetHashCode(Deal obj) { return ((int)obj...

7得票1回答
我需要从一个字符串中去除所有符号,以创建一个忽略标点符号的`IEqualityComparer`。

我的应用程序的一部分有一个选项,显示当前艺术家的专辑列表,其中不包含音乐库中已有的专辑。为了实现这个功能,我调用音乐API获取该艺术家的所有专辑列表,然后删除已经在当前库中的专辑。 为了应对名称的大小写不同以及标题中可能缺少(或额外添加)标点符号的情况,我编写了一个,用于.Except调用:...

7得票5回答
使用基类IEqualityComparer进行Distinct()操作,仍然返回子类类型?

我有一些从BaseClass类派生的类,其中BaseClass只有一个`Id`属性。 现在我需要对一些这些对象的集合进行去重。 我为每个子类反复使用以下代码: public class PositionComparer : IEqualityComparer<Position>...

7得票6回答
能否为一个匹配多对多的比较器编写哈希码函数?

我能为以下比较逻辑编写哈希码函数吗? 如果至少有两个属性(A, B, C)匹配,那么两个My实例相等。 判断相等很简单,但是我在哈希码部分被卡住了,而且我想也许不可能。 class MyOtherComparer : IEqualityComparer<My> { p...