2016-07-07 131 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}))) –

相關問題