0

我有如下两个数据表,我使用下面的数据表来比较两者:

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
--------------------------
4

1 回答 1

2

使用SequenceEqual.

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

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

于 2013-09-20T18:18:01.287 回答