2

Microsoft Visual Studio の組み込みユニット テスト フレームワークを使用する場合、内容が等しい場合に子コレクションが等しいと見なされる場合、ネストされたコレクションを含む 2 つのコレクションを比較するにはどうすればよいですか?

以下の例でAreEqualsは、各リストに異なるネストされたリスト インスタンスが含まれているため、失敗します。

var a = new List<List<string>> { new List<string> { "a" } };
var b = new List<List<string>> { new List<string> { "a" } };

CollectionAssert.AreEqual(a, b);

a比較時にtrue を返すアサーションを探していますb。ネストされたコレクションは、同じリスト インスタンスではありませんが、構造/内容が一致するためです。

これを行う簡単な方法がありませんか?を書くことIEqualityComparer<T>はオプションですが、簡単なルートがあることを願っています.... :-)

4

1 に答える 1

1
public bool AreEqual(List<List<string>> la, List<List<string>> lb)
{   
    if(la == null || lb == null) return false;
    if(la.Count() != lb.Count()) return false;
    for(int i; i ++; i < la.Count()) 
    {
       if(la[i].Count() != lb[i].Count()) return false;
       for(int j; j ++; j < la[i].Count()) 
       {
           if(la[i][j] != lb[i][j]) return false;
       }
    }
    return true;
}
于 2015-06-17T19:50:55.650 に答える