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

本文关键字:排序 数据表 两个 比较 | 更新日期: 2023-09-27 18:32:14

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

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

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

使用 SequenceEqual

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

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