问题标签 [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.

0 投票
12 回答
874 浏览

operators - == 运算符和操作数

我想检查一个值是否等于1。以下代码行有什么区别

评估值 == 1

1 == 评估值

就编译器执行而言

0 投票
2 回答
2011 浏览

sql - SQL 等式/不等式与可为空值的比较

首先采取,kludge解决方案,哨兵方法(您的程序必须不允许输入哨兵值):

假设您忘记阻止程序中的标记值,用户在 B 字段中输入了 -2147483648,而 A 为空。上面的代码报告 true,应该报告 false,不应该报告 true 或 null。

在可空字段上比较相等性的最简洁方法是什么?A == B 应该只报告真或假,无论字段是否可以为空。

0 投票
3 回答
13823 浏览

vb.net - VB.Net:测试多个值是否相等?

如何在一行中测试多个值是否相等?基本上我想做

但在 VB.Net 中。

0 投票
4 回答
662 浏览

c# - 用于数据库持久性的 c# 对象相等性

我想了解其他人如何应对以下情况。

这不是家庭作业或任何形式的任务。创建示例类是为了更好地说明我的问题,但它确实反映了我们希望得到反馈的现实生活场景。

我们从数据库中检索所有数据并将其放入一个对象中。一个对象代表一条记录,如果数据库中存在多条记录,我们将数据放入记录对象的 List<> 中。

假设我们有以下课程;

请注意,为清楚起见,类中省略了 Getter 和 Setter。在任何代码警察指责我没有使用它们之前,请注意仅在此示例中省略了。

该数据库有一个员工表和另一个员工地址表。

从概念上讲,我们所做的是创建一个 List 对象来表示数据库表中的数据。我们对该对象进行深度克隆,然后将其绑定到前端的控件。然后我们有两个对象(Orig 和 Final)代表数据库中的数据。

然后用户通过创建、修改、删除记录对“最终”对象进行更改。然后我们希望将这些更改持久化到数据库中。

显然我们希望尽可能优雅,只编辑、创建、删除那些需要它的记录。

我们最终想要比较两个 List 对象,以便我们可以;

  1. 查看哪些属性已更改,以便可以将更改持久保存到数据库中。

  2. 查看第二个 List<> 中不再存在哪些属性(记录),以便可以从数据库中删除这些记录。

  3. 查看新 List<> 中存在哪些新属性,以便我们可以在数据库中创建这些属性。

谁想了解我们如何才能最好地实现这一目标。请记住,我们还需要深入到 Employee_Address 列表以检查是否有任何更改,而不仅仅是顶级属性。

我希望我已经说清楚了,并期待任何建议。

0 投票
1 回答
530 浏览

inheritance - 平等和哈希码提供者的组合与继承

在比较实体和聚合根时,我使用从 Oren Eini 借来的 ABC:Generic Entity Equality。对于价值对象,我同样巧妙。我使用了 Jimmy Bogard 的 Value Object ABC:Generic Value Object Equality

现在我的问题是;我应该倾向于继承这些 ABC 还是应该使用通用相等/比较器并代替上述行为?我打算重用上述相等实现。

我认为这又回到了 System.Object 具有默认的 Equals 实现,这使得该语言非常易于使用,但也提供了有趣的难题。Jon Skeet 在这里详细介绍:比较方法

任何人都可以想到任何优点或缺点吗?

  • 继承 ABC 更容易,并提供开箱即用的运算符重载。
  • 我应该这么“拖”两个抽象类吗?它使我的继承图更复杂/增加了耦合。
  • 我可以使用 DI 来组成平等提供者吗?

总而言之,有没有人有使用实体的自定义相等实现的经验?我的目标是更全面地了解实施选择并实施解决方案,这将延长项目的生命周期(减少熵)并提高可维护性。

0 投票
6 回答
11020 浏览

c# - 引用相等性能差异?((object)obj1 == (object)obj2) 与 object.ReferenceEquals(obj1, obj2)

object.ReferenceEquals使用方法与使用相比是否有额外的开销((object)obj1 == (object)obj2)

在第一种情况下,将涉及静态方法调用,并且在这两种情况下都将涉及到对象的某种形式的强制转换。

即使编译器平衡了这些方法,不等式又如何呢?

相比于...

我想在某些时候,会发生逻辑否定,或者在 != 运算符中,或者应用于 ReferenceEquals 方法的结果。你怎么看?

还有可读性问题需要考虑。ReferenceEquals 在检查相等性时似乎更清楚,但对于不等式,人们可能会错过!前面的object.ReferenceEquals,而!=第一个变体中的 the 很难忽视。

0 投票
5 回答
271 浏览

c - If 和等式语句

我试图在这里解决问题,但我不知道为什么我的代码不起作用。任何帮助表示赞赏。编辑:编辑以进行下面提到的更正,但输出的第二行仍然有一个额外的“15”(粗体),我不明白它来自哪里。

我的输出是

18662658515 5552272 15

0 投票
6 回答
20939 浏览

c# - 检查两个列表的最佳方法是什么C# 中的相等列表

有很多方法可以做到这一点,但我觉得我错过了一个功能或其他东西。

显然List == List会使用Object.Equals()并返回false

如果列表中的每个元素都相等并且出现在相反列表中的相同位置,那么我会认为它们是相等的。我正在使用值类型,但正确实现的 Data 对象应该以相同的方式工作(即我不是在寻找浅拷贝列表,只是其中每个对象的是相同的)。

我已经尝试过搜索并且有类似的问题,但我的问题是每个元素的相等性,并且按照确切的顺序。

0 投票
5 回答
5289 浏览

c# - 在 linq 中设置相等

我有两个列表 A 和 B(列表)。如何以最便宜的方式确定它们是否相等?我可以写类似'(A减B)联合(B减A)=空集'或将它们连接在一起并计算元素数量,但它相当昂贵。有解决方法吗?

0 投票
4 回答
3566 浏览

c# - 我应该使用我的字符串字段的串联作为哈希码吗?

我在 C# 中有一个 Address 类,如下所示:

我正在实现平等,所以我需要覆盖哈希码。起初我打算使用 EJ 的哈希码公式,但后来我想:这些都是字符串字段,我不能只使用 StringBuilder 连接它们并从该字符串返回哈希码吗?

那是:

这样做的优点/缺点是什么?为什么我不应该这样做?