我有2个列表
grpoList
我有第二个命名程序集
我有以下代码
grpoList = grpoList.Where(c => assembly.Exists(cr => cr.ItemCode == c.ItemCode)).ToList();
这将返回
如何修改代码,使结果上的DocEntry 393行的数量为2而不是4?
答案 0 :(得分:4)
您可能希望在列表之间执行Join并从中选择所需字段
var data = grpoList.Join(assembly,
x => x.ItemCode,
y => y.ItemNo,
(x, y) => new
{
DocEntry = x.DocEntry,
LineNum = x.LineNum,
CarCode = x.CarCode,
ItemCode = x.ItemCode,
OpenQty = y.OpenQty,
DocDate = x.DocDate
}).ToList();
答案 1 :(得分:0)
我们可以使用linq联接创建自定义输出:
var query = from c in grpoList
join cr in assembly
on c.ItemCode equals cr.ItemCode
select new
{
c.DocEntry,
c.LineNum,
c.CarCode,
c.ItemCode,
OpenQty = c.OpenQty - cr.OpenQty,
c.DocDate
};
保持名称c和cr与您的问题相同,以便您轻松理解。