Linq查询使用列表或ID数组

时间:2013-03-02 19:40:40

标签: c# linq entity-framework

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

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

提前致谢。

2 个答案:

答案 0 :(得分:20)

听起来像你想要的东西:

var query = items.Where(item => validIds.Contains(item.Id));

请注意,如果这是全局的(即进程中,LINQ to Objects),并且您可能拥有大量有效ID,则可能需要构建HashSet<T>

或者你可以加入,当然:

var query = from id in validIds
            join item in items on id equals item.Id
            select item;

在网上甚至在Stack Overflow上有很多这样的例子,但是我可以理解它并不容易找到,因为你使用的所有术语都很常见。 )

答案 1 :(得分:0)

像那样使用

 var subscriptionDetails = SubscriptionMasterBL.GetSubscriptionMasterDetails();
                tempUserList = lstSubscriberUsers.Where(a => subscriptionDetails.Any(b => b.SubscriptionUserId == a.Id 
                    && b.TokenId != Guid.Empty)).ToList();