【发布时间】:2019-11-30 22:03:17
【问题描述】:
我有 2 个包含对象的列表。我想比较它们并返回新列表中的所有新对象
我尝试下面的代码,但我没有得到回答
var inInsyt = (from prd in db.COM_CUSTOMER_PRODUCT
join inv in db.INS_INVENTORY on prd.COM_CUSTOMER_PRODUCT_ID
equals inv.COM_PRODUCT_ID
where prd.COM_CUSTOMER_ID == 5252
select new ProductInventoryInfo
{
sku = prd.PRODUCT_CODE,
quantity = inv.INV_AVAILABLE
}).ToList();
var inEComSite = (from qlInv in db.INS_OPENCART_QOOLMART_INVENTORY
where qlInv.ID>0
select new ProductInventoryInfo
{
sku = qlInv.SKU,
quantity = qlInv.QUANTITY
}).ToList();
----------第一种方法------------------------------------ ------------------------------------------
var firstNotSecond = inInsyt.Except(inEComSite).ToList();
var secondNotFirst = inEComSite.Except(inInsyt).ToList();
--------------------第二种方法------------- ----------------------------------
List<ProductInventoryInfo> objectList3 = inEComSite.Where(o => inInsyt.Contains(o)).ToList();
List<ProductInventoryInfo> objectList4 = inInsyt.Where(o => !inEComSite.Contains(o)).ToList();
【问题讨论】:
-
如果你想比较一些自定义数据类型的对象序列,你必须在帮助类中实现 IEquatable
通用接口。 DOCS -
请在下方查看我提交的答案