LINQ/Lambda equivalent of SQL in

2020-03-02 05:09发布

I have an IEnumerable that has a list of objects with ids. I want to select those objects whose IDs are 1, 2, 7, 8, 9, 10, and 11. I don't know the LINQ/Lambda equivalent of the equivalent SQL statement (select * where id in (1, 2, 7, 8, 9, 10, 11)).

I tried something like:

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

But that gives me a compile error like saying the type arguments cannot be inferred from usage.

标签: c# linq lambda
1条回答
【Aperson】
2楼-- · 2020-03-02 05:34

If you are filtering you need to do that in the where clause not the select clause

var movieratings = new int[] {1, 2, 7, 8, 9, 10, 11};
list.ratings = list.ratings.Where(x => movieratings.Contains(x.Value));
查看更多
登录 后发表回答