概念として、リストは 1 つのユニットとして表示されます。したがって、読みやすさの観点から、オプションの 1 つを選択すると、単一の有効な呼び出しは "a.ShouldBeEquivalentTo(b);" になります。
その他については、あいまいです。
複数形の「ShouldAllBeEquivalentTo」は、要素の 2 つのコレクションを比較するときに適用されます。これらの文字列のグループ (A) とこれらの文字列のグループ (B) を比較していると主張する人もいると思います。ここで何が起こったかというと、文字列のグループは、List データ構造型の下にある単一の概念全体として収集されました。したがって、この呼び出しを使用するのは間違っていると言えます。
最後の形式は 2 つのことを意味します。まず、オブジェクト「a」を何かに変換する必要があります。「すべき」という名前は何も伝えません。その後、結果がリスト オブジェクト "b" と同等かどうかを比較する必要があります。論理的には、同じタイプの 2 つのオブジェクトを比較する必要があります。追加の変換は必要ありません。
コードを読むときは、次の形式を好みます。
リスト「A」は別のリスト「B」と同等です。
List<string> a = new List<string>() { "james", "wood" };
List<string> b = new List<string>() { "james", "wood" };
//creating "IsEquivalentTo" method
bool listsAreEqual = a.IsEquivalentTo(b);
//creating "IsEqualTo" method
listsAreEqual = a.IsEqualTo(b);
//overloading operator ==
listsAreEqual = (a == b);