假設我有以下幾點:選擇與關聯的字符串值子列表
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
}
}
在標示爲關鍵點,我想回到從檢查ListOfAs
並把它分解,從而產生ClassB
實例的列表ClassB
的每個實例都有一個單一產品,並且其中Product
所在的ClassA
實例中的Description
。
例如,如果我有:
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()
投射子表,但我無法解決如何使用父對象中的字符串實現投影子元素的組合。
啊哈,我不知道.SelectMany(collectionSelector,resultSelector)重載。謝謝! –