2016-05-28 18 views
-2

に2つのリストをマージします。は、私は2つのリスト</p> <pre><code>List<Product> Products; List<Showcase> Showcases; </code></pre> <p>Productクラスは、ショーケースクラス</p> <p>やショーケースのようなクラスのID値であるShowcaseIDが含まれているを持っているのLINQ

public class Showcase 
{ 
public int ID { get; set;} 
//..... 

public List<Product> Products { get; set; } 
} 

予想される出力。

List<Showcase> MergedList; // Same of Showcase class from beginning but contains All Product groupped by ShowcaseID 

私はマージすることができOFCこれはループを持つオブジェクトが、私は、LINQのでそれをやりたい、最も簡単な方法は何ですか?

+0

期待する出力は何ですか? – SunilA

+0

共通のフィールドを使用して2つのリストを結合する必要があります。 Webページを参照してください:https://code.msdn.microsoft.com/101-LINQ-Samples-3fb9811b – jdweng

+0

私は期待どおりの出力を書いています。他のクラスは必要ありません。ショーケースIDに関連するShowcaseリストに商品をコピーするだけです。 –

答えて

0

は、あなたがショーケースのリストを失いたくない場合は、以下を使用することができUPDATE 1

https://msdn.microsoft.com/en-us/library/bwabdf9z(v=vs.110).aspx

List<Product> Products; 
List<Showcase> Showcases; 

Showcases.ForEach(s => s.Products.AddRange(Products.Where(p => p.ShowcaseID == s.ID))); 

リストのためのForEachメソッドを試してみてください。

List<Showcase> MergedList = new List<Showcase>(); 
MergedList.AddRange(Showcases.Select(s => new Showcase { Products = products.Where(p => p.ShowcaseID == s.ID).ToList() })); 
関連する問題

 関連する問題