LINQ / Lambda相当于SQL中的

时间:2011-10-27 15:19:45

标签: c# linq lambda

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

我尝试过类似的事情:

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

但是这给了我一个编译错误,比如说不能从用法中推断出类型参数。

1 个答案:

答案 0 :(得分:13)

如果要过滤,则需要在where子句而不是select子句

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