比较两个DataTable行除了一个之外删除相同的行。

时间:2018-06-07 19:16:31

标签: c# linq

我想检查两个数据表的行。如果有完全匹配,我想删除除一个之外的所有内容。

我已经弄清楚如何比较两行数据。我不确定退回清理版本的最佳方法,没有重复。

我程序中的表是从数据库中提取表,所以我简化了它们的示例。

这是我到目前为止所做的工作。

 var table1 = new list<string>();
 var table2 = new list<string>();

foreach (DataRow row1 in table.Rows)
                foreach (DataRow row2 in table2.Rows)
                {
                    var array1 = row1.ItemArray;
                    var array2 = row2.ItemArray;

                    if (array1.SequenceEqual(array2))
                    {
                        // store the unique elements within a new list?
                        // remove duplicates and return the remainder?
                    }
                }

我认为使用Intersect()方法也可能是一个选项。

1 个答案:

答案 0 :(得分:1)

转换为所需类型的哈希集。它们将自动删除重复项,因为根据定义,hashset不能有重复的条目。 更多信息: https://www.dotnetperls.com/hashset