2017-11-05 10 views
0

목록의 모든 요소를 ​​통과하는 where 절을 사용하여 쿼리를 만들고 싶습니다.C# List where where 절

하지만 "연산자 '=='를 얻을 수는 유형 '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하기 전에 foreach는 내가 가지고 있기 때문에 :

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

아이디어가 있으십니까?

답장을 보내 주셔서 감사합니다. ;-)

+0

'result.Contains (xx.ClassId)'? 그게 답이라면 2 초의 인터넷 검색 결과를 얻었어야합니다. 그렇지 않다면 달성하려는 목표를 조금 더 설명해야합니다. – oerkelens

답변

1

결과 변수는 정수 목록입니다. 목록에 열거 된 classid가 포함되어 있는지 확인할 수 있습니다.

1

결과도 목록입니다. 그래서 다음과 같이 확인해야합니다 :

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