自作クラスがあります。
それは列挙体、文字列のメンバーを有します。
それをリストに格納します。
さらにそれをリストに格納します。
同じようなものを作成します。
これら両者に内容の重複するリストが存在するか調べたいのですが、
List.Containsはヒットしません。
どのようにすればヒットするでしょうか。
bigList1とbigList2内のあるペアのすべてのcmstのcmdとdataが一致している事が要件です。
こちらがソースです。
https://paiza.io/projects/N__zHPdp4krfqIZ17DzWXQ?language=csharp
重複を検知しました!の行が走ってくれません。
C#
1using System.Collections.Generic; 2public class Hello{ 3 4 public enum Cmd 5 { 6 good,bad,great,perfect,cool 7 } 8 9 public class CmSt 10 { 11 public Cmd cmd; 12 public string data; 13 } 14 15 16 public static void Main(){ 17 18 var smallList = new List<CmSt>(); 19 20 var bigList1 = new List<List<CmSt>>(); 21 var bigList2 = new List<List<CmSt>>(); 22 23 24 var cmst = new CmSt(); 25 cmst.cmd = Cmd.good; 26 cmst.data = "山田"; 27 smallList.Add(cmst); 28 29 cmst = new CmSt(); 30 cmst.cmd = Cmd.bad; 31 cmst.data = "田中"; 32 smallList.Add(cmst); 33 34 bigList1.Add(smallList); 35 36 37 smallList = new List<CmSt>(); 38 39 cmst = new CmSt(); 40 cmst.cmd = Cmd.good; 41 cmst.data = "山田"; 42 smallList.Add(cmst); 43 44 cmst = new CmSt(); 45 cmst.cmd = Cmd.bad; 46 cmst.data = "田中"; 47 smallList.Add(cmst); 48 49 bigList2.Add(smallList); 50 51 52foreach(List<CmSt> tgt in bigList1) 53{ 54 if(bigList2.Contains(tgt)) 55 { 56 System.Console.WriteLine("重複を検知しました!"); 57 } 58} 59 60} 61 62} 63
回答1件
あなたの回答
tips
プレビュー