比较不同表的数据行

San*_*ndy 3 c# datatable datarow winforms c#-4.0

我前段时间发布了一个类似的查询,并决定降低其复杂性,让开发人员回答我的主要问题。它可以说是重复的,但我仍然想将其发布,因为编辑上一篇文章并没有产生太多结果。

我有 2 个数据表:dataTable1 和 dataTable2。两者都有 1 行包含相同的条目。例如。两个数据表中的列都是名称、班级、主题。现在,两个数据表的两行都具有相同的值(“John”、“5”、“Science”)。现在我想比较这两行是否有相同的条目。我尝试过:

if(dataTable1.Rows[0].GetHashCode() == dataTable2.Rows[0].GetHashCode()) 
{ 
    // Result is false (but I expected it to be true) 
} 
Run Code Online (Sandbox Code Playgroud)

并且还尝试过:

if(dataTable1.Rows[0].ItemArray == dataTable2.Rows[0].ItemArray) 
{ 
    // Result is false (but I expected it to be true) 
} 
Run Code Online (Sandbox Code Playgroud)

我想避免循环来做到这一点,但如果需要的话也没关系。我只想比较 2 个不同数据表的 2 行,看看它们的条目是否相同。我不知道如何继续。谢谢。

Mas*_*uso 6

var result= dataTable1.AsEnumerable().Intersect(dataTable2.AsEnumerable(),
                                                    DataRowComparer.Default);
Run Code Online (Sandbox Code Playgroud)

它返回两个表中的记录

更多信息请访问:

http://msdn.microsoft.com/en-us/library/bb386998.aspx