2017-11-05 2 views
0

リスト内のすべての要素を通過するwhere節でクエリを作成したいと思います。C#リスト内のリスト

しかし、私は「演算子 『==』を取得するには型 『int型』と 『リスト』のオペランドに適用することはできません

var result = (from n in School.Teacher 
          where n.UserID == ID 
          select n.ClassID).Distinct().ToList(); 



var events = School.Events.ToList().Where(xx => xx.ClassID == result); 

私はのような解決策を探していない午前:

var events = School.Events.ToList().Where(xx => xx.ClassID == result[0] || xx.ClassID == result[1] || xx.ClassID == result[2]); 

ので、リストのレコード数が毎回異なる可能性があります。

メソッドの最後には、前にforeachのクエリがありません:

return new JsonResult { Data = events, JsonRequestBehavior = JsonRequestBehavior.AllowGet }; 

ご意見はありますか?

ご回答ありがとうございます。 ;-)

+0

'result.Contains(xx.ClassId)'?それが答えであれば、2秒のグーグルが必要です。そうでなければ、達成しようとしていることを少し説明する必要があります。 – oerkelens

答えて

1

結果変数は整数のリストです。あなたのリストに列挙されたclassidが含まれているかどうかを確認することができます

var events = School.Events.ToList().Where(xx => result.Contains(xx.ClassID)); 
1

結果もリストです。だからあなたはこのようにチェックする必要があります:

var events = School.Events.Where(xx => result.Contains(xx.ClassID));