【发布时间】:2015-06-24 16:01:41
【问题描述】:
我有一个包含 4 列的数据表:
Parent ID ID Qty Qty Type
A A12 5 xxx
B A32 10 xxx
A A12 4 xxx
A B23 3 yyy
最终结果应该是:
Parent ID ID Qty Qty Type
A A12 9 xxx
B A32 10 xxx
A B23 3 yyy
所以基本上逻辑应该是它会删除任何相同的 {Parent ID AND ID} 集并将数量添加到它。在我们的示例中,第一个和第三个元素是相同的父 ID 和相同的 ID,因此我们删除第 3 个元素并将数量添加到第一个元素(我们还必须检查数量类型是否相同,否则我们必须射出一个错误)。
注意第一个和第四个没有被添加 - 因为他们的父 ID 可能相同,但他们的父 ID + ID 不相同,因此我们不添加。
有没有办法在 Linq 中做到这一点?不完全是,但主要是这样?
【问题讨论】:
-
你尝试了什么?
-
var dups = from row in _positionTable.Copy().AsEnumerable() group row by new { SubsystemTypeId = row.Field<string>("Parent ID"), SupplierId = row.Field<string>("ID") } into grp where grp.Count() > 1 select grp.Key;