2016-07-07 10 views
0

モデルのリストが2つあります。最初のリストに含まれるリストを別のリストで埋める方法linqの2番目のリスト?

製品

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から在庫リストを入力します。

どうすればいいですか?

+1

'stockList'は' List 'であるはずですか? –

+0

@JimMischel、ok私はそれを編集します。 – Zebra

答えて

3

あなたはproductList内のすべてのProductのための新しいStockViewModelを作成することができSelectを使用して、あなただけの彼らが

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

私はそれが質問のクラスの混乱したプレゼンテーションのためだと推測していますが、stockListはリストではないリストです。どちらの質問にもタイプミスがあるか、それとも効果的に答えるための正しい情報を提供していません。それにかかわらず、これは少なくとも彼を正しい方向に向けるでしょう。 – Larry

+1

良い点は、質問が更新され、十分な情報があれば更新するか削除するかを確認するまでここに残しておきます:) – TomDoesCode

+0

ありがとうございました。 – Zebra

0

あなたは、単に以下のようにStockViewModelを作成することができます追加するAddRangeを呼び出すことができます。

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

okは私のために働いた、今私はこの答えに関連する別の質問がある。私が公開仮想クライアント管理者ClientsAdmins {get; set;}を持っていて、それを似た製品にしたいのですが、どうすればいいですか? – Zebra

+0

この例では、StockViewModelリストは、製品リストの数に基づいて作成されます.ClientsAdmins ClientAdminsListに対して別のリストがある場合、および各製品リストのClientAdminsに基づいてリストを作成する場合は、リストを作成します。このようなリストを作成することができます... ClientAdminsList.Select(C => stockListList.AddRange(productList.Select(x => new StockViewModel {Product = x、ClientsAdmins = C})))))) –

関連する問題