C# 通过比较c中的两个数据表来删除重复记录#

C# 通过比较c中的两个数据表来删除重复记录#,c#,filter,datatable,copy,C#,Filter,Datatable,Copy,我有两个数据表。一个拥有所有记录,另一个数据表只有很少的记录。我必须在第三个表中插入不在第二个表中的记录,但我只想使用c#而不是linq。我尝试了for和foreach循环,但没有得到精确的结果。我不建议像以前那样这样做。Foreach内部的Foreach是一个非常糟糕的主意,有更好的解决方案(比如合并)。试着考虑使用LINQ。但是你可以试试类似的东西 foreach (datarow dr1 in datatable1) { bool add = true; foreach

我有两个数据表。一个拥有所有记录,另一个数据表只有很少的记录。我必须在第三个表中插入不在第二个表中的记录,但我只想使用c#而不是linq。我尝试了for和foreach循环,但没有得到精确的结果。

我不建议像以前那样这样做。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
    }
}

您可能需要将两个数据表合并为一个数据表,然后对其进行迭代以过滤掉重复项第一个数据表包含所有记录,第二个数据表包含第一个数据表中的一些记录。现在,第三个数据表应该有不在第二个表中的记录。我的理解是,DataTable A是完整的,DataTable B包含A可能已经有的记录。我想您可以使用DataRowCollection的Find()来检查DataTable B中的一行是否已经在a中,然后将该行添加到第三个表中,如果它还没有,这里的链接供您参考:谢谢让我尝试一下。您可以建议我通过linq做同样的事情吗??