我试图找到一种正确的方法来在具有 class 属性的字典中找到键。例如,请参阅下面的代码 - ContainsKey 出错,因为在密钥是 UserServiceData 时,此 ContainsKey(string) 签名没有实现。我该如何解决这个问题?class UserServiceData { string name; int someDate; int someData1;}class B{ public static Dictionary<UserServiceData, IClientKdcCallBack> users_list = new Dictionary<UserServiceData, IClientKdcCallBack>; void isUserExists(string userName) { m_users_list.ContainsKey(userName) }}
3 回答
慕容森
TA贡献1853条经验 获得超18个赞
您也可以尝试编写自己的相等比较器。
private class UserServiceDataEqualityComparer : IEqualityComparer<UserServiceData>
{
public bool Equals(UserServiceData x, UserServiceData y)
{
return x.name == y.name;
}
public int GetHashCode(UserServiceData obj)
{
return obj.name.GetHashCode();
}
}
然后像这样声明你的字典..
var list = new Dictionary<UserServiceData, IClientKdcCallBack>(new UserServiceDataEqualityComparer());
然后你可以这样做
list.ContainsKey(UserServiceDataObj)
- 3 回答
- 0 关注
- 186 浏览
添加回答
举报
0/150
提交
取消