【发布时间】:2016-02-26 03:18:57
【问题描述】:
例如,有两个表具有相同的架构,但内容不同:
表 1
| field1 | field2 | field3 |
----------------------------------------
| 1 | aaaaa | 100 |
| 2 | bbbbb | 200 |
| 3 | ccccc | 300 |
| 4 | ddddd | 400 |
表2
| field1 | field2 | field3 |
----------------------------------------
| 2 | xxxxx | 200 |
| 3 | ccccc | 999 |
| 4 | ddddd | 400 |
| 5 | eeeee | 500 |
预期的比较结果是:
在 B 中删除:
| 1 | aaaaa | 100 |
不匹配:
Table1:| 2 | bbbbb | 200 |
Table2:| 2 | xxxxx | 200 |
Table1:| 3 | ccccc | 300 |
Table2:| 3 | ccccc | 999 |
B中新增
| 5 | eeeee | 500 |
使用C#,比较两张表最快的方法是什么?
目前我的实现是: 检查table1中的每一行是否与table2中的完全匹配; 检查 table2 中的每一行是否与 table1 中的完全匹配。
效率为n*n,因此对于 100k 行,在服务器上运行需要 20 分钟。
非常感谢
【问题讨论】:
-
他们是
DataTables吗?如果是这样定义(主)键并进行比较。
标签: c# comparison