为了账号安全,请及时绑定邮箱和手机立即绑定

使用具有不同属性的字典 containskey 比较器

使用具有不同属性的字典 containskey 比较器

C#
哆啦的时光机 2021-08-29 17:56:07
我试图找到一种正确的方法来在具有 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)


查看完整回答
反对 回复 2021-08-29
  • 3 回答
  • 0 关注
  • 186 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信