问题标签 [iequatable]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
3 回答
439 浏览

c# - 比较两个列表在 C# 中

我有一堂课叫

此类继承 IEquatable 并实现等于我需要的方式。(意思是:当我在代码中单独比较两个 MyClass 类型对象时,它可以工作)

然后我创建两个列表:

当我去比较 ListA 和 ListB 时,我应该是真的吗?

0 投票
1 回答
382 浏览

vb.net - 级联 IEquatable(Of T)

我有几个实体需要分别制作 IEquatable(Of TEntity)。

我希望他们首先检查 EntityId 之间的相等性,然后如果两者都为零,则应检查其他属性,例如相同的联系人姓名、相同的电话号码等。

这是怎么做到的?

0 投票
2 回答
17447 浏览

null - 空字段上的GetHashCode?

如何处理GetHashCode函数中的空字段?

0 投票
4 回答
26737 浏览

c# - 何时使用 IEquatable为什么

到底IEquatable<T>给你买了什么?我认为它有用的唯一原因是在创建泛型类型并强制用户实现和编写良好的 equals 方法时。

我错过了什么?

0 投票
2 回答
1126 浏览

equals - 如何实现 IEquatable当可变字段是相等的一部分时 - GetHashCode 的问题

我在我的应用程序中使用实体框架。

我用实体的部分类实现了IEquatable<T>接口:

现在在我的代码中,我以这种方式使用它:

注意(我在调试器可视化器中检查)EntityCollection 类将其实体存储在 HashSet 中,因此它与 GetHashCode 函数有关,我希望它依赖于 ID,因此实体通过它们的 ID 进行比较。

问题是当我点击保存时,ID 从 0 变为它的 db 值。所以问题是我怎样才能有一个平等的对象,被正确地散列。

请帮助我找出 GetHashCode 函数中的问题(按 ID)以及我可以更改哪些内容以使其正常工作。

非常感谢。

0 投票
5 回答
721 浏览

c# - 使用 IEquatable 的兄弟类的 C# 字典唯一性

我想将两个类的实例存储在字典结构中,并使用 IEquatable 来确定这些实例的唯一性。这两个类共享一个(抽象)基类。考虑以下类:

字典将被删除:Dictionary<Foo, Bar>

哪些类应该声明为 IEquatable?那些声明的泛型类型 T 应该是什么?这甚至可能吗?

0 投票
4 回答
81202 浏览

c# - IEquatable 和仅覆盖 Object.Equals() 之间有什么区别?

我希望我的Food类能够在它等于另一个实例时进行测试Food。稍后我将对列表使用它,并且我想使用它的List.Contains()方法。我应该实施IEquatable<Food>还是只是覆盖Object.Equals()?来自 MSDN:

此方法通过使用默认相等比较器来确定相等性,该比较器由对象对 T(列表中的值的类型)的 IEquatable.Equals 方法的实现定义。

所以我的下一个问题是:.NET 框架的哪些函数/类使用了Object.Equals()?我应该首先使用它吗?

0 投票
1 回答
641 浏览

silverlight - 您将如何使 List<> 具有可比性?

我正在使用 Telerik GridView,并且在尝试对由 List<> 组成的列进行排序时遇到问题。在这个论坛条目中,Telerik 团队指出,无论 Silverlight 版本如何,网格都可以对 IComparable 进行排序和分组/过滤 IEquatable<>。在下面的 xaml 中,您将看到网格中的四列。SVOs 专栏是我遇到的问题。SVO 绑定到 List(ServiceOrder_DataViewModel)。由于 List 没有实现 IComparable 或 IEquatable,因此我无法对该列进行排序或分组/过滤。所以,我的问题是:如何创建一个实现 IComparable 和 IEquatable 的新 List 对象?我们确实有能够实现 IComparable 和 IEquatable 的逻辑,我只是​​不确定如何实现它。

0 投票
1 回答
1035 浏览

c# - 如何构造类以实现 IEquatable 和 ISerializable

一段时间以来一直在努力解决这个问题

我遇到的问题是尝试添加 IEquatable 行为,以便我的派生类可以使用 ILink 等的集合操作相交。

此刻我有...

和一堆派生类,比如

所以为了做列表的交集,我想我会创建一个像这样的抽象类......

但是,当我将派生类型从

我得到一个 SerializationException “找不到成员 'Linkid'。” 这是它尝试反序列化的第一个成员

顺便说一句:这是远程处理,因此需要自定义序列化 - 有没有办法将这些行为组合在一起?

非常感谢!

0 投票
4 回答
620 浏览

c# - c# 中的 obj1.Equals(obj2) 和 static Object.Equals(obj1, obj2) 有什么区别?

从 Microsoft 的文档来看,这两种 Equals 方法本质上是相同的。但是我偶然发现了一些非常奇怪的东西。在我的 Silverlight 项目中,我有两个覆盖 Equals 的相同类的实例。如果我要求inst1.Equals(inst2)inst2.Equals(inst1)我总是得到真实的结果。但是Object.Equals(inst1, inst2)返回false。这怎么可能?

有任何想法吗?

谢谢,洛克