Linq to objects Liste dans liste

J'ai une liste de films

List<Movie> MovieList

et j'ai une liste de catégories sélectionnées

List<string> SelCat

Et dire que je veux sélectionner à partir de la liste de films où elle correspond à 2 catégories, comme l'instruction SQL ci-dessous:

SELECT * FROM MovieList WHERE MovieList.Category = 'Action' AND MovieList.Category = 'Drama'

Je peux obtenir un peu près avec linq comme suit:

var q = (from b in MovieList where b.Categories.Any(p=> SelCat.Contains(p)) select b);

Mais il agit comme un OU une requête, pas un ET. Je le veux pour sélectionner tous les films qui ont une catégorie de l'action et de drame.

BTW: Film.Catégories est une Liste de chaîne de. ET Film.Les catégories doivent contenir des éléments dans le SelCat.

Comment puis-je réaliser cela avec Linq to Objects?

  • MovieList.Catégorie = 'Action' ET MovieList.Catégorie = "Drame", de ne pas vous dire MovieList.Catégorie = "Action" OU MovieList.Catégorie = "Drame"
  • Non, MovieList.Catégories est une List<string>
  • Vous voulez trouver tous les films d'ACTION et de DRAME? Donc, un film qui n'a que le DRAME dans ses catégories n'est pas celui que vous voulez?
  • Oui. Tous les films d'action ET de drame. ou ce qui est dans le SelCat liste de chaîne de caractères.