我希望我的Food类能够在它等于另一个实例时进行测试Food.我稍后会对List使用它,我想使用它的List.Contains()方法.我应该实施IEquatable<Food>还是仅仅覆盖Object.Equals()?来自MSDN:
此方法通过使用默认的相等比较器来确定相等性,由对象的T的IEquatable.Equals方法的实现(列表中的值的类型)定义.
所以我的下一个问题是:.NET框架的哪些函数/类可以使用Object.Equals()?我应该首先使用它吗?
我想在Java中比较两个字符串的相等性,当其中一个或两个都可以时null,所以我不能简单地调用.equals().什么是最好的方法?
boolean compare(String str1, String str2) {
...
}
Run Code Online (Sandbox Code Playgroud)
编辑:
return ((str1 == str2) || (str1 != null && str1.equals(str2)));
Run Code Online (Sandbox Code Playgroud) 我想比较两个集合(在C#中),但我不确定有效实现它的最佳方法.
我已经阅读了关于Enumerable.SequenceEqual的其他帖子,但这并不是我正在寻找的.
在我的情况下,如果它们都包含相同的项目(无论顺序),则两个集合将是相等的.
例:
collection1 = {1, 2, 3, 4};
collection2 = {2, 4, 1, 3};
collection1 == collection2; // true
Run Code Online (Sandbox Code Playgroud)
我通常做的是遍历一个集合中的每个项目,看看它是否存在于另一个集合中,然后循环遍历另一个集合的每个项目,看它是否存在于第一个集合中.(我首先比较长度).
if (collection1.Count != collection2.Count)
return false; // the collections are not equal
foreach (Item item in collection1)
{
if (!collection2.Contains(item))
return false; // the collections are not equal
}
foreach (Item item in collection2)
{
if (!collection1.Contains(item))
return false; // the collections are not equal
}
return true; // the collections are equal
Run Code Online (Sandbox Code Playgroud)
但是,这并不完全正确,并且它可能不是比较两个集合的最有效方法.
我能想到的一个例子是错误的:
collection1 …Run Code Online (Sandbox Code Playgroud) 所以我有一组对象.确切的类型并不重要.从中我想提取一对特定属性的所有唯一对,因此:
myObjectCollection.Select(item=>new
{
Alpha = item.propOne,
Bravo = item.propTwo
}
).Distinct();
Run Code Online (Sandbox Code Playgroud)
所以我的问题是:在这种情况下会不会使用默认对象equals(这对我来说没用,因为每个对象都是新的)或者可以告诉它做一个不同的equals(在这种情况下,Alpha和Bravo的值相等) =>相等的实例)?有没有办法实现这个结果,如果不这样做的话?
如何确定两个jQuery对象是否相等?我希望能够在数组中搜索特定的jQuery对象.
$.inArray(jqobj, my_array);//-1
alert($("#deviceTypeRoot") == $("#deviceTypeRoot"));//False
alert($("#deviceTypeRoot") === $("#deviceTypeRoot"));//False
Run Code Online (Sandbox Code Playgroud) ==和.equals()Scala有什么区别,什么时候使用哪个?
实现是否与Java相同?
编辑:相关问题谈论的具体情况AnyVal.更一般的情况是Any.
在bash,等于和双等测试运算符之间有什么区别?
[[ "a" = "a" ]] && echo equal || echo not-equal
[[ "a" == "a" ]] && echo equal || echo not-equal
[[ "a" = "b" ]] && echo equal || echo not-equal
[[ "a" == "b" ]] && echo equal || echo not-equal
Run Code Online (Sandbox Code Playgroud)
结果是:
equal
equal
not-equal
not-equal
Run Code Online (Sandbox Code Playgroud) 对不起这个简单的问题,但我很难找到答案.
当我比较2个列表时,我想知道它们是否"相等",因为它们具有相同的内容,但顺序不同.
例如:
x = ['a', 'b']
y = ['b', 'a']
Run Code Online (Sandbox Code Playgroud)
我想x == y评价一下True.
说我有自己的课
public class MyObj { /* ... */ }
Run Code Online (Sandbox Code Playgroud)
它有一些属性和方法.它不实现equals,不实现hashCode.
一旦我们调用equals和hashCode,默认实现是什么?来自Object类?他们是什么?默认等于如何工作?默认的hashCode如何工作以及返回什么?==只会检查它们是否引用同一个对象,所以这很容易,但是equals()和hashCode()方法呢?
equality ×10
equals ×3
java ×3
.net ×2
c# ×2
bash ×1
collections ×1
comparison ×1
distinct ×1
hashcode ×1
iequatable ×1
jquery ×1
linq ×1
list ×1
null ×1
object ×1
python ×1
python-2.x ×1
scala ×1
string ×1