2016-05-28 106 views
-2

我有兩個詞典合併兩個列表中的LINQ

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

產品類包含ShowcaseID其是展示類

ID值和展示類等;

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

您需要使用通用字段來加入這兩個列表。請參閱網頁:https://code.msdn.microsoft.com/101-LINQ-Samples-3fb9811b – jdweng

+0

我寫了預期的輸出,我不想要任何其他類,只需將產品複製到與展示ID相關的展示列表 –

回答

0

試用名單

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))); 

更新1

您可以使用下面的,如果你不想失去展櫃列表中的ForEach方法。

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