2016-07-07 126 views
0

我有2个模型列表。如何通过另一个列表来填充第一个列表包含linq中的第二个列表?

产品

public class Product 
{ 
    public int Id { get; set; }  
    public Title { get; set; } 
} 

股票

public class Stock 
{ 
    public virtual Product Product { get; set; } 
} 

我有一个装满产品的清单和库存清单。

List <Product> productList = _productService.GetProduct().ToList(); 

List<Stock> stockList = new List<Stock>();  

现在,我想要使用Linq从productList填充stockList。

我该怎么办?

+1

'stockList'应该是List 吗? –

+0

@JimMischel,好吧我编辑它。 – Zebra

回答

3

使用Select您可以创建在productListProduct新StockViewModel,然后你可以叫AddRange添加它们

stockList.AddRange(productList.Select(x => new Stock { Product = x })); 
+0

我猜这是因为问题中类的混淆表示,但stockList是列表而不是List 。这个问题有一个错字,或者他没有提供正确的信息让你有效地回答。无论如何,这至少会把他引向正确的方向。 – Larry

+1

好点,我会在这里留下这个问题,直到问题得到更新,并确保我或者更新它或删除它,一旦有足够的信息:) – TomDoesCode

+0

非常感谢你,为我工作。 – Zebra

0

您可以简单地创建StockViewModel像下面。

stockList = productList.Select(x => new StockViewModel { Product = x }).ToList() 
+0

确定为我工作,现在我有与此答案有关的另一个问题。如果我有公共虚拟ClientAdmins ClientsAdmins {get; set;}有货,我想填充它类似的产品,我应该怎么做? – Zebra

+0

在此示例中,基于产品列表计数创建StockViewModel列表,如果您具有ClientsAdmins ClientAdminsList的单独列表,并且您希望基于每个产品列表的ClientAdmins创建一个列表。 (C => stockList.AddRange(productList.Select(x => new StockViewModel {Product = x,ClientsAdmins = C}))) –

相关问题