플레이어, 게임, 유형별로 다른 테이블과 연결된 필드가있는 "작업"테이블이 있습니다.Linq - 목록에있는 행 선택
List<Player> playersForStats
List<Game> gamesForStats
지금 내가 (필드) 플레이어 목록 gamesForStats에있는 목록 playersForStats 및 (필드) 게임에 작업에서 행을 선택합니다 : 내 C# 코드로도 두 개의 목록을 가지고있다. 어떻게 linq를 사용하여 만들 수 있습니까? 내부 조인이나 다른 것을 사용해야합니까?
var oActions = ..
var oData = oActions.Where(c=> c.Players.TrueForAll(p => playersForStats.Contains(p)) && gamesForStats.Contains(c.Game));
이 c.Players
이 List
그리고 c.Game
이 필드입니다 가정하면 : 개체가 적절한 equals 메소드가있는 경우이 같은
고마워요! 이 솔루션은 잘 작동하지만 질문이 하나 더 있습니다. 이 솔루션을 사용하려면 : 리스트 결과 = (게임에서 oAction에서 oAction.Game이 game.GameName과 등가 인 경우 gameForStats에 참여하십시오.) ToList(); 내가 먼저 선을 변경할 수 있습니다. 목록 결과 = (actions.asEnumerable에서 oAction() ..... 에서의 행동이 내 SQLSERVER 테이블입니다 때문에 대화의 becuse (내 프로그램 속도가 느려질 수 서버에서 데이터 보내기) contains() 메서드를 사용하여 솔루션을 사용하고 SqlServer에서 쿼리를 작성하는 것이 더 빠릅니다. –
Sparkzi
가장 빠른 솔루션은 DB에 뷰를 만들고 웹 서비스 (예 : –