2011-10-27 14 views
6

Mam IEnumerable, który ma listę obiektów z identyfikatorami. Chcę wybrać te obiekty, których identyfikatory to 1, 2, 7, 8, 9, 10 i 11. Nie znam odpowiednika LINQ/Lambda równoważnego polecenia SQL (wybierz * gdzie id w (1, 2, 7, 8, 9, 10, 11)).Odpowiednik LINQ/Lambda dla SQL w

Próbowałem coś takiego:

var movieratings = new int[] {1, 2, 7, 8, 9, 10, 11}; 
list.ratings= list.ratings.Select(x => movieratings.Contains(x.Value)); 

Ale to daje mi błąd kompilacji jak mówią argumenty typu nie można wywnioskować z użytkowania.

Odpowiedz

12

Jeśli filtrowanie trzeba zrobić, że w przypadkach, gdy klauzula nie klauzuli SELECT

var movieratings = new int[] {1, 2, 7, 8, 9, 10, 11}; 
list.ratings = list.ratings.Where(x => movieratings.Contains(x.Value));