2012-08-28 26 views
3

如何在LINQ中執行此操作 - 所以我不必使用ForEach或循環?如何在LINQ中循環集合並傳遞數據

我似乎無法弄清楚如何通過一個列表,當一些條件滿足,這種方式循環與LINQ的集合。

products.ForEach(delegate(CustomEcomProducts p) 
{        
    p.VariantProducts = variants.Where(prod => prod.VariantParentID == p.ProductID) 
         .ToList(); 
}); 
+3

只是爲了興趣。爲什麼你不喜歡循環? – Reniuz

+0

我喜歡循環,我只是在LINQ很新,並確定有一種方法可以做到這一點沒有循環。 – MacGyver

回答

6

這不是LINQ的用處。 LINQ中的Q代表「查詢」。

最好/清潔/最可讀的方式做到這一點是:

foreach(var product in products) 
    product.VariantProducts = variants.Where(x => x.VariantParentID == p.ProductID) 
             .ToList();