我有两张桌子:
表1
名称柜台
A 1
B 2
C 3
表2
名称柜台
A 2
B 2
的C 3
如何获得以下结果?
名称计数器
A 1
A 2
B 2
C 3
答案 0 :(得分:1)
如果数据来自关系数据库,并且ORM层是Linq2Sql或Entity Framework,则通过部分类语法扩展数据对象(表中的“行”)以覆盖等于方法(用必需的语义覆盖它,就像两个字段应该相同)并使用Enumerable。 Union 扩展方法。
或者将Union扩展方法与其他重载一起使用,该重载采用 IEqualityComparer 对象。在该对象中,您可以实现比较。 (http://msdn.microsoft.com/en-us/library/bb358407.aspx)
如果这两个表是如此不同,为它们生成了不同的类,那么你应该将它们包装在第3类(适配器设计模式)中,以便能够将它们的集合一起使用并使用上面提到的方法。