加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

c# – Dictionary.Equals()有一个实现?

发布时间:2020-12-15 06:18:39 所属栏目:百科 来源:网络整理
导读:我有一个字典,我正在与另一个字典(变量键入IDictionary)进行比较.做d1.Equals(d2)会产生错误.在下面写我自己的代码是真的.都是System.Collections.Generic.Dictionary.我是否缺少某些东西或字典没有比较键/值的Equals实现? private static bool DictEqualsK
我有一个字典,我正在与另一个字典(变量键入IDictionary)进行比较.做d1.Equals(d2)会产生错误.在下面写我自己的代码是真的.都是System.Collections.Generic.Dictionary.我是否缺少某些东西或字典没有比较键/值的Equals实现?
private static bool DictEquals<K,V>(IDictionary<K,V> d1,IDictionary<K,V> d2)
{
    if (d1.Count != d2.Count)
        return false;

    foreach (KeyValuePair<K,V> pair in d1)
    {
        if (!d2.ContainsKey(pair.Key))
            return false;

        if (!Equals(d2[pair.Key],pair.Value))
            return false;
    }

    return true;
}

解决方法

Dictionary.Equals()使用来自Object的默认Equals,检查两个对象是否是相同的引用,以及所有其他默认集合.你可以自由地创建自己的具有价值语义的子类,尽管它通常包括不可变的东西.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读