Linq查询使用列表或数组的id

本文关键字:数组 id 列表 查询 Linq | 更新日期: 2023-09-27 18:02:07

我很难弄清楚如何在c#中使用linq查询数据库以获得与id列表或数组对应的所有对象,并将它们放在列表中。例如:

我有一个项目表。我想构建一个方法,检索id在pass数组或列表中的所有项。我已经谷歌它,但它总是假设我只是想查询一个列表或数组,而不是查询使用列表或数组。

Linq查询使用列表或数组的id

听起来你想要这样的东西:

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

请注意,如果这都是本地的(即在进程中,LINQ到对象),你可能有很多有效的id,你可能想要构造一个HashSet<T>

或者你可以做一个连接,当然:

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

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

像这样使用

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