質問: hogelist1.FindAll(hogelist2.Contains); // member3が一致しないので // hogelist3には何も入らない ``` ### 試したこと for文で回してみましたがもっとシンプルな方法はないかと思い質問させていただきました。 ### 補足情報(言語/FW/ツール等のバージョンなど) C# Visual Studio 2008
回答: まず `Hoge` クラスの `Equals` メソッドを override して、member1〜3 が等しければ true を返すようにします。 * 自作クラスのEqualsメソッドをオーバーライドして、等価の定義を変更する: .NET Tips: C#, VB.NET 次に、 `hogelist1` と `hogelist2` が同じかどうかは、 `hogelist1.SequenceEqual(hogelist2)` が使えます(.NET Framework 3.5以降の場合)。 * 2つの配列(またはコレクション)を比較して、等しいか調べる: .NET Tips: C#, VB.NET 上記には、他にもリストの比較の手法が載っているので参考になると思います。