gpt4 book ai didi

c# - C#Dictionary.ContainsKey()始终返回false

转载 作者:太空宇宙 更新时间:2023-11-03 18:15:17 28 4
gpt4 key购买 nike

我有一个Dictionary,每次调用ContainsKey方法时,它都会返回false。请看下面的例子

 Boolean found = dict.ContainsKey(new Group("group1", "test"));


尽管Visual Studio调试器显示dict中存在名称为“ group1”且类型为“ test”的Group,但找到的变量为false。到底是怎么回事?

我的Group类有两个String字段(类型和名称),我重写了Equals方法

public override bool Equals(object obj)
{
Group otherGroup = (Group)obj;
return this.name == otherGroup.name && this.type == otherGroup.type;
}

最佳答案

您应该覆盖GetHashCode method

包含2个字符串属性的类的HashMethod示例

public override int GetHashCode()
{
unchecked
{
return ((name != null ? name.GetHashCode() : 0)*397) ^ (type != null ? type.GetHashCode() : 0);
}
}

关于c# - C#Dictionary.ContainsKey()始终返回false,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7476356/

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