2013-03-01 76 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