0

以下の 2 つのデータ テーブルがあり、以下を使用して 2 つを比較しています。

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

Assert.IsFalse(diffResult.Any());

このシナリオdiffResultでは何も返されず、2 つのテーブルが一致していることを確認したい場合は問題なく動作します。ただし、この比較方法では、並べ替えが考慮されていません。

2 つのテーブルを比較して、2 つのテーブルに同じデータが含まれていて、両方とも同じ順序になっている場合に 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 に答える