![]() |
1
2
是的,有一些。
首先,您已经有了要删除的实例。就这么做
其次,哈希码不是唯一的标识符。两个不同的对象可以具有相同的哈希代码-唯一必须为真的是,两个相同的对象必须具有相同的hash代码,并且哈希代码不会更改。
编辑: 好吧,既然您的编辑很明显地表明您不知道要删除哪个实例,那么1)将无法工作。无论如何,2)仍然保持-哈希代码不是唯一标识符。如果需要根据某个值查找实例,请查找该值,而不是哈希代码。 |
![]() |
2
0
Equal hash codes are not a guarantee for object equality. 因此,假设您将使用同一对象的哈希代码返回该对象是错误的。如果需要匹配其他属性(而不是其引用)上的项,请在列表上创建自己的相等比较器。 |
![]() |
3
0
你的循环需要逆序
|
![]() |
4
0
如果您查看MSDN中的GetHashCode,您会看到 -您不应该假设相等的哈希代码意味着对象相等。 [ https://msdn.microsoft.com/en-gb/library/system.object.gethashcode(v=vs.110).aspx][1] 我只是建议使用
如果
|
![]() |
5
0
你是说
这意味着要删除的对象是类的实例,而不是值类型。所以我们知道你要找的函数的签名是
上的remove方法
这意味着我们不能使用
这同样适用于
您的实现使用
我们可以做的是用哈希码检查代替引用相等性检查。为此,我们有
我们可以将其替换为您的代码:
编辑:在您的编辑中,您说
如果你没有实例,大多数赌注都会落空。如果你只有哈希代码,就没有保证能实现这一点的方法。因此,最好保留实例,而不仅仅是散列代码。 |
![]() |
danial · 如何在多个字符串的每个位置找到最频繁的字符 2 年前 |
![]() |
shekharsabale · 从列表元素捕获子字符串 2 年前 |
![]() |
The Great · 拆分并存储数据帧,但名称基于特定列中的唯一值 2 年前 |
![]() |
Klimt865 · Python中的列表列表 2 年前 |
![]() |
Klimt865 · 在Python中将数组列表转换为列表列表 2 年前 |