2011-10-27 22 views
6

Tengo un IEnumerable que tiene una lista de objetos con identificadores. Quiero seleccionar aquellos objetos cuyos ID son 1, 2, 7, 8, 9, 10 y 11. No conozco el equivalente LINQ/Lambda de la declaración SQL equivalente (seleccione * donde id en (1, 2, 7, 8, 9, 10, 11)).LINQ/Lambda equivalente de SQL en

he intentado algo así como:

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

Pero eso me da un error de compilación como decir que los argumentos de tipo no se pueden deducir de su uso.

Respuesta

12

Si va a filtrar lo que necesita hacer que en la cláusula where no la cláusula select

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