在两个数据表中查找相等行的最快方法

时间:2018-10-18 07:57:14

标签: c#

我需要两个人在Giant csv文件中找到一行并将其添加到另一个表中,这里的问题是它大约有200000行,而对于我的foreach方法来说,它永远需要查找所有行。有什么方法可以更快地做到这一点?我不需要删除重复项。我有两个表,我必须在一个表中查找行,并在第三个表中添加找到并匹配的行。我试图删除第三个表中所有已经准备好的行,以不再对其进行再次比较,但是我得到了System.Data.RowNotInTableException。

foreach (DataRow dr in Csvdaten.Rows)
{
    foreach (DataRow dr2 in Csvimportdaten.Rows)
    {
        if (dr["campaign_id"].ToString() == dr2["campaign_id"].ToString() &&
            dr["communication_id"].ToString() == dr2["communication_id"].ToString() && 
            dr["customer_id_spam"].ToString() == dr2["customer_id_spam"].ToString())
        {
            IO.Zusammendt.ImportRow(dr);
            Csvdaten.Rows.Remove(dr);
        }
    }
}

0 个答案:

没有答案