gpt4 book ai didi

C# 字典相等要求

转载 作者:太空狗 更新时间:2023-10-29 22:53:50 26 4
gpt4 key购买 nike

Dictionary 的键是否需要与相等进行比较?

例如

Class mytype
{
public bool equals(mytype other)
{
return ...;
}
}

在我的例子中,除非它们是同一个实例,否则它们不会相等。

如果我需要实现平等,我是否应该有一个大的数值,随着 mytype 的每个新实例的创建而递增?

最佳答案

如果您的类只有在它们是同一实例时才相等,那么您无需执行任何操作即可在Dictionary 中使用它们。当且仅当引用同一对象时,类(引用类型)才被视为相等。

From the documentation of GetHashCode

对于 Object 的派生类,GetHashCode 方法可以委托(delegate)给 Object.GetHashCode 实现,当且仅当该派生类将值相等定义为引用相等且类型不是值类型时。

您的情况似乎是这样。根据经验,如果您重写 Equal,您还需要重写 GetHashCode,但这在您的情况下不是必需的,因为默认值就是您要查找的内容。

关于C# 字典相等要求,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8759614/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com