1

我有 2 张桌子:

表 1
名称计数器
A 1
B 2
C 3

表 2
名称计数器
A 2
B 2
C 3

如何得到以下结果?

名称计数器
A 1
A 2
B 2
C 3

4

1 回答 1

1

如果数据来自关系型数据库,并且ORM层是Linq2Sql或Entity Framework,那么通过部分类语法扩展数据对象(表中的“行”)来覆盖Equals方法(用需要的语义覆盖它,就像这两个字段应该相同)并使用 Enumerable. 联合扩展方法。

或者使用带有IEqualityComparer对象的其他重载的 Union 扩展方法。在该对象中,您可以实现比较。( http://msdn.microsoft.com/en-us/library/bb358407.aspx )

如果这两个表是如此不同,以至于为它们生成了不同的类,那么您应该将它们包装在第 3 个类(适配器设计模式)中,以便能够一起使用它们的集合并使用上述方法。

于 2013-06-24T10:32:09.153 回答