次のものがあるとします。
public class ClassA
{
public string Description {get;set;}
public List<Product> Products {get;set;}
}
public class ClassB
{
public string Description {get;set;}
public Product SingleProduct {get;set;}
}
public class ClassC
{
public List<ClassA> ListOfAs {get;set;}
public List<ClassB> BreakDownListOfAs()
{
// This is the critical point
}
}
マークされた重要なポイントで、各インスタンスが単一の製品を持ち、それが存在するインスタンスからを取得するように、それClassB
を調べListOfAs
て分解することで作成されたインスタンスのリストを返したいと考えています。ClassB
Description
ClassA
Product
例、私が持っている場合:
var ListOfAs = new List<ClassA> {
new ClassA {
Description = "foo",
Products = new List<Product> { p1, p2 }
},
new ClassA {
Description = "bar",
Products = new List<Product> { p3, p4 }
}
};
次に、の戻り値がClassC.BreakDownListOfAs()
一致する必要があります。
new List<ClassB> {
new ClassB { Description = "foo", Product = p1 },
new ClassB { Description = "foo", Product = p2 },
new ClassB { Description = "bar", Product = p3 },
new ClassB { Description = "bar", Product = p4 },
}
通常、サブリストの射影に使用することは知っていますが.SelectMany()
、射影されたサブ要素を親オブジェクトの文字列で構成する方法がわかりません。