这是我的代码
if (catid != 0)
posts = posts.Where(x => x.catid IN '1,8,2,109,23');
此代码中的 显示为语法错误。有没有办法解决这个问题
答案 0 :(得分:8)
您还必须使用其他列表进行比较。
List<int> cadIdFoundList = new List<int>();
cadIdFoundList.Add(1);
cadIdFoundList.Add(8);
// etc. . .
posts.Where(x => cadIdFoundList.Contains(x.catId));
答案 1 :(得分:5)
int[] ids = new int[] { 1, 8, 2, 109, 23 };
var query = posts.Where(x => ids.Contains(x.catid));
Rob Conery之前有discussed这个话题。
答案 2 :(得分:2)
甚至更简单:
var query = posts.Where(x => new[] { 1, 8, 2, 109, 23 }.Contains(x.catid));
答案 3 :(得分:1)
也许更像是:
HashSet<int> categories = new HashSet<int>() { 1, 2, 8, 23, 109};
posts = posts.Where(post => categories.Contains(post.catid));