c# - 比较两个数据表以确定其中一个而不是另一个中的行

标签 c# datatable

我有两个数据表,AB,由 CSV 文件生成。我需要能够检查 B 中存在哪些行,而 A 中不存在这些行。

有没有一种方法可以执行某种查询来显示不同的行,或者我是否必须遍历每个 DataTable 上的每一行以检查它们是否相同?如果表变大,后一种选择似乎非常密集。

最佳答案

假设您有一个适当类型的 ID 列(即提供哈希码并实现相等性)- 在本例中为字符串,它有点伪代码,因为我对 DataTables 不太熟悉并且没有时间现在全部查看 :)

IEnumerable<string> idsInA = tableA.AsEnumerable().Select(row => (string)row["ID"]);
IEnumerable<string> idsInB = tableB.AsEnumerable().Select(row => (string)row["ID"]);
IEnumerable<string> bNotA = idsInB.Except(idsInA);

关于c# - 比较两个数据表以确定其中一个而不是另一个中的行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/164144/

相关文章:

c# - 带有事件名称的 NetworkStream write()

c# - File.WriteAllText 和并发访问

c# - 这在 LINQ 中可能吗?

sorting - jQuery 数据表 : Clicking thead should sort descending and then ascending for all columns

c# - 在 tabcontrol C# 中显示多个数据表

c# - 为 ASP.NET 5 编写自定义身份验证类

c# - 在 LINQ 查询中转换 SQL 查询并将结果移动到新数据表中

jsf - 如何在EL中通过#{component.id}获取列ID?

javascript - 如何在变量内部传递变量?

c# - PHP $_GET ['something' ] 在 C# 中等效