2011-10-27 33 views
6

Tôi có một IEnumerable có danh sách các đối tượng có id. Tôi muốn chọn những đối tượng có ID là 1, 2, 7, 8, 9, 10 và 11. Tôi không biết tương đương LINQ/Lambda của câu lệnh SQL tương đương (chọn * trong đó id trong (1, 2, 7, 8, 9, 10, 11)).LINQ/Lambda tương đương với SQL trong

tôi đã cố gắng một cái gì đó như:

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

Nhưng điều đó mang lại cho tôi một lỗi biên dịch giống như nói rằng những lập luận kiểu không thể được suy ra từ việc sử dụng.

Trả lời

12

Nếu bạn đang lọc bạn cần phải làm điều đó trong mệnh đề where không phải là lựa chọn khoản

var movieratings = new int[] {1, 2, 7, 8, 9, 10, 11}; 
list.ratings = list.ratings.Where(x => movieratings.Contains(x.Value)); 
Các vấn đề liên quan