C# 在Linq中合并两个列表

C# 在Linq中合并两个列表,c#,.net,linq,class,C#,.net,Linq,Class,我有两张单子 List<Product> Products; List<Showcase> Showcases; 列出产品; 列出陈列柜; 产品类包含ShowcaseID,它是Showcase类的ID值 和展示类一样 public class Showcase { public int ID { get; set;} //..... public List<Product> Products { get; set; } } 公共类展示 { 公

我有两张单子

List<Product> Products; 
List<Showcase> Showcases; 
列出产品;
列出陈列柜;
产品类包含ShowcaseID,它是Showcase类的ID值

和展示类一样

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

 public List<Product> Products { get; set; }
}
公共类展示
{
公共int ID{get;set;}
//.....
公共列表产品{get;set;}
}
预期产量

List<Showcase> MergedList; // Same of Showcase class from beginning but contains All Product groupped by ShowcaseID
列表合并列表;//Showcase类从一开始就是相同的,但包含按ShowcaseID分组的所有产品

ofc我可以用循环合并这些对象,但我想用Linq来合并,最简单的方法是什么?

尝试用ForEach方法创建列表

列出产品;
列出陈列柜;
Showcases.ForEach(s=>s.Products.AddRange(Products.Where(p=>p.ShowcaseID==s.ID));
更新1

如果您不想丢失展示列表,可以使用以下选项

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

您期望的输出是什么?您需要使用一个公共字段将两个列表连接起来。请参阅网页:我编写了预期输出,我不需要任何其他类,只需将产品复制到与Showcase ID相关的Showcases列表中即可
List<Showcase> MergedList = new List<Showcase>();
MergedList.AddRange(Showcases.Select(s => new Showcase { Products = products.Where(p => p.ShowcaseID == s.ID).ToList() }));