Linq中使用C#的Zip方法有什么问题?
我编写了以下代码来比较两个表Linq中使用C#的Zip方法有什么问题?,c#,linq,C#,Linq,我编写了以下代码来比较两个表 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.Z
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。有什么问题吗?请帮帮我。是一个组合运算符:它将One
中的项目与Two
中位于列表中相同位置的项目组合在一起。在我看来,您希望它根据过滤器进行组合。将函数应用于两个序列的给定元素,并生成结果序列。可以使用Intersect操作符返回两个序列的交集
var q = one.Intersect(two)