【发布时间】:2021-10-24 12:12:31
【问题描述】:
我怎么不能检查对象是否相等? 我有 2 个类存储对象(带有类产品列表),我想找到共同产品,但是当我检查 Identical 2 个产品对象时,它们并不相同。
class Storage
{
public List<Product> many_product;
public Storage(List<Product> el)
{
this.many_product.AddRange(el);
}
public static Storage mutual_products(Storage a, Storage b)
{
Storage mutal_products = new Storage();
foreach (var prod in a.many_product)
if (b.many_product.Contains(prod))// return false, but in list is a mutual product
{
mutal_products.many_product.Add(prod);
}
return mutal_products;
}
}
当我用 if(prod1==prod2)//return false 检查相同的产品时也是如此
【问题讨论】:
-
“相同”表示这两个对象实际上是一个对象,可以用
Object.ReferenceEquals(或者==,如果运算符没有重载)检查。
标签: c#