C#で2本の一覧を比較すると、
-
19-09-2019 - |
質問
私は
と呼ばれるクラスを持っていますMyClass
このクラスは、IEquatableや道具が、私はそれが必要な方法に等しい継承します。 (意味:私は個々にコード内のオブジェクトtyupe 2つのMyClassを比較するときに、それが動作)
私は、2つのリストを作成します:
var ListA = new List<MyClass>();
var ListB = new List<MyClass>();
// Add distinct objects that are equal to one another to
// ListA and ListB in such a way that they are not added in the same order.
私は、LISTAとListBのを比較するために行く、私は本当の取得すべきですか?
ListA.Equals(ListB)==true; //???
解決
タグ以下をお試しください
ListA.SequenceEquals(ListB);
SequenceEquals Enumerable
クラスで使用可能な拡張方法です。それは
他のヒント
あなたの質問に答えるために、いいえ、あなたは本当の取得べきではありません。 List
とList<T>
は.Equalsを定義していないので、彼らは次のことをチェックする、はObject.equalsを継承します:
public static bool Equals(object objA, object objB)
{
return ((objA == objB) || (((objA != null) && (objB != null)) && objA.Equals(objB)));
}
そしてobjA.Equals(objB)
は、仮想です。私が正しくリコール場合は、デフォルトの実装は、ちょうどので、あなたのコードはfalseを返します、(メモリ内の同じオブジェクトを指して)参照の等価かどうかをチェックします。
所属していません StackOverflow