问题标签 [equality]
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.
operators - == 运算符和操作数
我想检查一个值是否等于1。以下代码行有什么区别
评估值 == 1
1 == 评估值
就编译器执行而言
sql - SQL 等式/不等式与可为空值的比较
首先采取,kludge解决方案,哨兵方法(您的程序必须不允许输入哨兵值):
假设您忘记阻止程序中的标记值,用户在 B 字段中输入了 -2147483648,而 A 为空。上面的代码报告 true,应该报告 false,不应该报告 true 或 null。
在可空字段上比较相等性的最简洁方法是什么?A == B 应该只报告真或假,无论字段是否可以为空。
vb.net - VB.Net:测试多个值是否相等?
如何在一行中测试多个值是否相等?基本上我想做
但在 VB.Net 中。
c# - 用于数据库持久性的 c# 对象相等性
我想了解其他人如何应对以下情况。
这不是家庭作业或任何形式的任务。创建示例类是为了更好地说明我的问题,但它确实反映了我们希望得到反馈的现实生活场景。
我们从数据库中检索所有数据并将其放入一个对象中。一个对象代表一条记录,如果数据库中存在多条记录,我们将数据放入记录对象的 List<> 中。
假设我们有以下课程;
请注意,为清楚起见,类中省略了 Getter 和 Setter。在任何代码警察指责我没有使用它们之前,请注意仅在此示例中省略了。
该数据库有一个员工表和另一个员工地址表。
从概念上讲,我们所做的是创建一个 List 对象来表示数据库表中的数据。我们对该对象进行深度克隆,然后将其绑定到前端的控件。然后我们有两个对象(Orig 和 Final)代表数据库中的数据。
然后用户通过创建、修改、删除记录对“最终”对象进行更改。然后我们希望将这些更改持久化到数据库中。
显然我们希望尽可能优雅,只编辑、创建、删除那些需要它的记录。
我们最终想要比较两个 List 对象,以便我们可以;
查看哪些属性已更改,以便可以将更改持久保存到数据库中。
查看第二个 List<> 中不再存在哪些属性(记录),以便可以从数据库中删除这些记录。
查看新 List<> 中存在哪些新属性,以便我们可以在数据库中创建这些属性。
谁想了解我们如何才能最好地实现这一目标。请记住,我们还需要深入到 Employee_Address 列表以检查是否有任何更改,而不仅仅是顶级属性。
我希望我已经说清楚了,并期待任何建议。
inheritance - 平等和哈希码提供者的组合与继承
在比较实体和聚合根时,我使用从 Oren Eini 借来的 ABC:Generic Entity Equality。对于价值对象,我同样巧妙。我使用了 Jimmy Bogard 的 Value Object ABC:Generic Value Object Equality
现在我的问题是;我应该倾向于继承这些 ABC 还是应该使用通用相等/比较器并代替上述行为?我打算重用上述相等实现。
我认为这又回到了 System.Object 具有默认的 Equals 实现,这使得该语言非常易于使用,但也提供了有趣的难题。Jon Skeet 在这里详细介绍:比较方法
任何人都可以想到任何优点或缺点吗?
- 继承 ABC 更容易,并提供开箱即用的运算符重载。
- 我应该这么“拖”两个抽象类吗?它使我的继承图更复杂/增加了耦合。
- 我可以使用 DI 来组成平等提供者吗?
总而言之,有没有人有使用实体的自定义相等实现的经验?我的目标是更全面地了解实施选择并实施解决方案,这将延长项目的生命周期(减少熵)并提高可维护性。
c# - 引用相等性能差异?((object)obj1 == (object)obj2) 与 object.ReferenceEquals(obj1, obj2)
object.ReferenceEquals
使用方法与使用相比是否有额外的开销((object)obj1 == (object)obj2)
?
在第一种情况下,将涉及静态方法调用,并且在这两种情况下都将涉及到对象的某种形式的强制转换。
即使编译器平衡了这些方法,不等式又如何呢?
相比于...
我想在某些时候,会发生逻辑否定,或者在 != 运算符中,或者应用于 ReferenceEquals 方法的结果。你怎么看?
还有可读性问题需要考虑。ReferenceEquals 在检查相等性时似乎更清楚,但对于不等式,人们可能会错过!
前面的object.ReferenceEquals
,而!=
第一个变体中的 the 很难忽视。
c - If 和等式语句
我试图在这里解决问题,但我不知道为什么我的代码不起作用。任何帮助表示赞赏。编辑:编辑以进行下面提到的更正,但输出的第二行仍然有一个额外的“15”(粗体),我不明白它来自哪里。
我的输出是
18662658515 5552272 15
c# - 检查两个列表的最佳方法是什么C# 中的相等列表
有很多方法可以做到这一点,但我觉得我错过了一个功能或其他东西。
显然List == List
会使用Object.Equals()
并返回false
。
如果列表中的每个元素都相等并且出现在相反列表中的相同位置,那么我会认为它们是相等的。我正在使用值类型,但正确实现的 Data 对象应该以相同的方式工作(即我不是在寻找浅拷贝列表,只是其中每个对象的值是相同的)。
我已经尝试过搜索并且有类似的问题,但我的问题是每个元素的相等性,并且按照确切的顺序。
c# - 在 linq 中设置相等
我有两个列表 A 和 B(列表)。如何以最便宜的方式确定它们是否相等?我可以写类似'(A减B)联合(B减A)=空集'或将它们连接在一起并计算元素数量,但它相当昂贵。有解决方法吗?
c# - 我应该使用我的字符串字段的串联作为哈希码吗?
我在 C# 中有一个 Address 类,如下所示:
我正在实现平等,所以我需要覆盖哈希码。起初我打算使用 EJ 的哈希码公式,但后来我想:这些都是字符串字段,我不能只使用 StringBuilder 连接它们并从该字符串返回哈希码吗?
那是:
这样做的优点/缺点是什么?为什么我不应该这样做?