前提
Unityで、ホテル用ベッドメイキングの
チェックリストアプリを作っています。
部屋ごとにベッドが複数あり、チェックを押したら、
どの部屋のどの番号のベッドがチェックされたのかを
Listに保管しています。
このListはクラスのListで、int型の変数を2つ持っています。
(部屋番号とベッド番号)
実現したいこと
あるボタン(Closeボタン)を押したときに、
すべての部屋のベッドがチェックされたかどうかを確認したいです。
すべてのベッドのリストと、チェックされたベッドのリストを比較し、
同じ要素があればそれをさらに別のリストに入れ、
その総数がベッドの総数と一致しているかを調べたいです。
(もし一致していなかったら、お知らせが出ます)
発生している問題
FindAllというメソッドを使って、
共通の値を持ったクラスを見つけたいと思ったのですが、
どのように記述すればうまくいくのかわかりません。
該当のソースコード
Unity
1public class BedPanelCon : MonoBehaviour 2{ 3 4 //チェックされたベッド 5 public List<BedData> bedDataList; 6 7 //ホテルのすべてのベッド 8 public List<OriginalBedData> originalBeddataList; 9 10 // 11 public List<CloseBedCheck> closeBedCheckList; 12 13 14 public void Start() 15 { 16 bedDataList = new List<BedData>(); 17 originalBeddataList = new List<OriginalBedData>(); 18 closeBedCheckList = new List<CloseBedCheck>(); 19 20//…中略 21 22public void PushBedButtonMakinglist(int roomNO, int BedNo) 23 { 24 BedData b = new BedData(); 25 b.RoomNo = roomNO; 26 b.BedNo = BedNo; 27 bedDataList.Add(b); 28 } 29 30public void MakingOriginalBedDatalist(int roomNO, int BedNo) 31 { 32 OriginalBedData d = new OriginalBedData(); 33 d.RoomNo = roomNO; 34 d.BedNo = BedNo; 35 originalBeddataList.Add(d); 36 } 37 38[System.Serializable] 39public class BedData 40{ 41 public int RoomNo; 42 public int BedNo; 43} 44 45[System.Serializable] 46public class OriginalBedData 47{ 48 public int RoomNo; 49 public int BedNo; 50} 51 52//以下のボタンを押したとき、未チェックのベッドがあるか確認する処理をしたいです。 53public void PushClose() 54 { 55 //以下の書き方だと、エラーが出ます。 56 closeBedCheckList = bedDataList.FindAll(originalBeddataList.Contains); 57 58//…中略 59 60 }
エラー文を読んでもまだ理解できる力がありません。
(エラー文:メソッドグループからPredicate<BedData>へ変換することはできません)
また、ひとつの変数ではなく、Listに格納されたクラスの中の変数を調べるには
どのようにしたらよいでしょうか。
おわかりの方いましたら、ご教授頂ければ幸いです。
回答1件
あなたの回答
tips
プレビュー