2011-10-27 149 views
6

我有一个IEnumerable,其中包含带有ID的对象列表。我想选择ID为1,2,7,8,9,10和11的那些对象。我不知道相当于SQL语句的LINQ/Lambda等价物(select * where id in(1,2, 7,8,9,10,11))。LINQ/Lambda等效于SQL

我想是这样的:

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

但是,这给了我一个编译错误好像是说的类型参数不能从使用推断。

回答

12

如果你过滤你需要做的是在where子句中没有SELECT子句

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