比较两个数据表,同时考虑排序

时间:2013-09-20 18:02:11

标签: c# linq sorting datatable

我有两个数据表,如下所示,我使用以下数据来比较两者:

var diffResult = actual.AsEnumerable().Except(expected.AsEnumerable(), 
DataRowComparer.Default);

Assert.IsFalse(diffResult.Any());

在这种情况下,diffResult不返回任何内容,并且当我想确保两个表匹配时工作正常。然而,这种比较方式不考虑排序。

如果两个表包含相同的数据并且它们的排序方式相同,我如何比较两个表并返回True?

actual
-------------------------
 Code  |   Name 
--------------------------
 101  |  A
 101  |  B
 101  |  C
--------------------------

expected
-------------------------
 Code|   Name 
--------------------------
 101  |  C
 101  |  B
 101  |  A
--------------------------

1 个答案:

答案 0 :(得分:2)

使用SequenceEqual

bool seqEqual = actual.AsEnumerable()
               .SequenceEqual(expected.AsEnumerable(), DataRowComparer.Default);

SequenceEqual仅在两个列表具有相同数量的元素且与比较器定义的顺序完全相同时才为真。