2013-03-01 75 views
0

下面我试图通过一个int列表来返回所有带有productID ==的产品给每个int。Linq可以吗?

public IQueryable<Product> GetProductsForSubCat(List<int> prodSubResult) 
     { 

      if (prodSubResult != null) 
      { 
       var _db = new ProductContext(); 

       IQueryable<Product> query = _db.Products; 

       foreach (int x in prodSubResult) 
       { 
        query = _db.Products.Where(p => p.ProductID == x); 



       } 
        return query; 
      } 
      return null; 
     } 
+1

你为什么要这么做?如果列表中有多个元素,它应该总是返回一个空集合 – JaredPar 2013-03-01 19:11:23

+4

现在你应该知道,LINQ有任何可能的东西。 – evanmcdonnal 2013-03-01 19:24:17

回答

8

当然可以,这是相当直截了当:

var query = _db.Products.Where(p => prodSubResult.Contains(p.ProductId)); 
+0

这是正确的,只要OP没有查找要返回的'IEnumerable >'。可能不会,但尚不足以成为一种可能性。 – Bobson 2013-03-01 19:16:01

+0

@Bobson是的,我只是基于我对OP所要求的描述的回答,而不是提供的实现(其中有其他缺陷)。 – 2013-03-01 19:18:19

+0

这样做的缺点是什么? – jackncoke 2013-03-01 19:56:42