Reputation: 1601
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.
Upvotes: 7
Views: 8395
Reputation: 5303
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));
Upvotes: 13