【问题标题】:Remove duplicate records by comparing two data tables in c#通过比较c#中的两个数据表来删除重复记录
【发布时间】:2017-07-05 08:19:01
【问题描述】:

我有两个数据表。一个有所有记录,而其他数据表只有很少的记录。我必须在第三个表中插入不在第二个表中的记录,但只想使用 c# 而不是 linq。我尝试使用 for 和 foreach 循环但不准确。

【问题讨论】:

  • 您可能需要将两个数据表合并为 1 个数据表,然后对其进行迭代以过滤掉重复项
  • 第一个数据表包含所有记录,第二个表包含第一个数据表中的一些记录。现在第三个数据表应该有不在第二个表中的记录
  • 我的理解是DataTable A是完整的,DataTable B是包含A可能已经拥有的记录。我认为您可以使用 DataRowCollection 的 Find() 来检查 DataTable B 中的行是否已经在 A 中,然后在第三个表中添加该行,如果它还没有,这里的链接供您参考:msdn.microsoft.com/en-us/library/…
  • 谢谢让我试试这个

标签: c# filter datatable copy


【解决方案1】:

我不建议这样做,就像以往一样。 foreach 中的 foreach 是一个非常糟糕的主意,那里有更好的解决方案(如合并)。尝试考虑使用 linq。但你可以尝试类似

foreach (datarow dr1 in datatable1)
{
    bool add = true;

    foreach (datarow dr2 in datatable2)
    {
         // Make sure the itemarray[x] is the proper indetifier
         if (dr2.itemarray[0].toString() == dr1.itemarray[0])
         {
             add = false;
             break;
         }
    }
    if (add)
    {
        // add record to datatable3
    }
}

【讨论】:

  • 你能建议我通过 linq 做同样的事情吗??
猜你喜欢
  • 1970-01-01
  • 2019-10-31
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-05-19
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多