我有一个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));
但是这给了我一个编译错误,比如说不能从用法中推断出类型参数。
答案 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));