Linq查询使用列表或ID数组

jen*_*gar 5 c# linq entity-framework

我无法弄清楚如何使用cq中的linq查询数据库以获取与列表或数组相对应的所有对象并将它们放入列表中.例如:

我有一张物品.我想构建一个方法来检索其id在pass数组或列表中的所有项.我用google搜索它但它总是假设我只想查询列表或数组而不是查询使用列表或数组.

提前致谢.

Jon*_*eet 21

听起来像你想要的东西:

var query = items.Where(item => validIds.Contains(item.Id));
Run Code Online (Sandbox Code Playgroud)

请注意,如果这是全局的(即进程中,LINQ to Objects)并且您可能有很多有效的ID,那么您可能想要构造一个HashSet<T>.

或者你可以加入,当然:

var query = from id in validIds
            join item in items on id equals item.Id
            select item;
Run Code Online (Sandbox Code Playgroud)

(这里有很多在网络上,甚至在堆栈溢出这样的例子,但我能理解,这不是一个容易找到,因为所有你想使用的都是常见的条款).