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

c# – 关于比较List的问题

发布时间:2020-12-15 20:07:08 所属栏目:百科 来源:网络整理
导读:我有两个清单: Listcomparerobj list_c = new Listcomparerobj();Listcomparerobj list_b = new Listcomparerobj(); 我正以某种方式填写清单 然后我试图在list_b中找到list_c不包含的元素: foreach (comparerobj b in list_b){ bool lc = !list_c.Contains
我有两个清单:

List<comparerobj> list_c = new List<comparerobj>();
List<comparerobj> list_b = new List<comparerobj>();

我正以某种方式填写清单

然后我试图在list_b中找到list_c不包含的元素:

foreach (comparerobj b in list_b)
{
    bool lc = !list_c.Contains(b);
    if (lc != true)
    {
        data.Add(b);
    }
}

但是对于任何b我都得到那个lc = true.我究竟做错了什么?

解决方法

你的对象如何比较?默认情况下,.NET框架通过引用比较对象.例如,如果您创建以下类:

class A
{
    string Name { get; set; }
}

和以下代码

A a1 = new A() { Name = "a" };
A a2 = new A() { Name = "a" };

那么你会发现这些物体是不同的.

您需要重写.NET Framework的Equals方法以将上述对象视为相等.

(编辑:李大同)

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

    推荐文章
      热点阅读