Linq表达式,用于获取illist中的所有项,其中一个字段在另一个List中
本文关键字:一个 字段 List 另一个 获取 用于 表达式 illist Linq | 更新日期: 2023-09-27 18:09:29
此集合包含整个产品数据库:
IList<Products> allProducts;
这只包含该用户的所有产品的指南:
IList<Guid> usersProducts;
下面是我需要的psuedo代码,即给定用户的illist中的所有产品类,并且产品类型也为== 1。
var filteredProducts = (p from allProducts
where p.Id in usersProducts && p.Type == 1).List();
我不知道如何做SQL查询"WHERE IN(…,…,)
var filteredProducts = (from p in allProducts
where usersProducts.Contains(p.Id) && p.Type == 1
select p).ToList();
@Samich的答案是正确的。这只是个人偏好,但我更喜欢方法语法…
var filteredProducts = allProducts.Where(p => p.Type == 1 && userProducts.Contains(p.Id)).ToList();
另外,出于性能原因,我交换了条件的顺序。如果p.Type
不等于1,则Contains
不会执行
听起来你只是想要一个连接。
var filteredProducts = (from p in allProducts
join u in usersProducts on p.Id equals u.Id
where p.Type == 1
select p).ToList();