2

我编写了以下代码来比较两个表,

var one = db.arabia_upod_item_availability_masters.Where(i => i.locationId == 30).OrderBy(i => i.itemNo).ToList();
var two = db.vw_get_arabia_upod_report_quantityOrderedPerItem_uhjs.OrderBy(i => i.Item_No).ToList();

if (one.Zip(two, (j, k) => j.itemNo == k.Item_No).Any(m => !m))
returnValue = true;
else
returnValue = false;

问题是 Zip 方法从第一个循环到最后一个循环,然后再循环一次。例如,如果项目编号是 1,2,3,它会经过 1,2,3,然后再经过 1,即使所有值都匹配,它甚至会返回 false。可能是什么问题?请帮我。

4

2 回答 2

2

Zip是一个组合运算符:它将列表中的One项目与列表Two相同位置的项目组合在一起。在我看来,您希望它根据过滤器进行组合。

于 2012-07-11T12:11:55.230 回答
0

Zip将函数应用于两个序列的给定元素并产生结果序列。您可以使用Intersect运算符返回两个序列的交集

var q = one.Intersect(two)
于 2012-07-11T12:26:22.253 回答