【发布时间】:2015-03-31 09:56:39
【问题描述】:
我有两个列表
var left={[ID=1,Name='A',Qty1=0,Qty2=5],[ID=2,Name=B,Qty1=0,Qty2=52]};
var right={[ID=1,Name='A',Qty1=57,Qty2=0],[ID=2,Name=B,Qty1=84,Qty2=0]};
var outer=left.union(right);
我想得到以下结果:
outer={[ID=1,Name='A',Qty1=57,Qty2=5],[ID=2,Name=B,Qty1=84,Qty2=52]}
我如何得到它?比较器类怎么写?
编辑: 我有两个列表
var target=(...new ClassA{ID=a.ID,Name=a.Name,TargetQty=b.TargetValue}).ToList();
var sales=(....new ClassA{ID=a.ID,Name=a.Name,SalesQty=b.SaleValue}).ToList();
现在我想要一个完整的外部联接。我怎样才能得到它?
【问题讨论】:
-
您只是想根据 ID 和名称对数量值求和吗?如果是这样,听起来你想要一个群组加入。
-
那么你想要 Max
-
是否可以使用 union 得到结果?
-
不,Union 根本不适合这种操作。
-
请注意,不清楚为什么您认为您想要一个完整的外部连接 - 如果您真的想要,如果您可以在您的示例中说明这一点,将会很有用。根据我的回答,您已经获得的示例适用于内部连接。
标签: linq join comparator full-outer-join