LINQ在收集条款中的位置

Jan*_* W. 32 c# linq-to-sql

我一直在寻找谷歌,但没有找到任何可以帮助我的技巧.

如你所知SQL有一个"where x in(1,2,3)"子句,它允许你检查多个值.我正在使用linq,但我似乎无法找到与上述语句相同的语法.

我有一个类别ID(列表)的集合,我想检查

我找到了一些使用.contains方法的东西,但它甚至没有构建.

CMS*_*CMS 40

您必须在ID列表中使用Contains方法:

var query = from t in db.Table
            where idList.Contains(t.Id)
            select t;
Run Code Online (Sandbox Code Playgroud)


Dav*_*all 19

语法如下:

IEnumerable<int> categoryIds = yourListOfIds;

var categories = _dataContext.Categories.Where(c => categoryIds.Contains(c.CategoryId));
Run Code Online (Sandbox Code Playgroud)

需要注意的关键是你在id列表上执行包含 - 如果你正在编写sql,则不要在你应用的对象上执行.