在我的代码中,我有一个ObjectA列表,每个ObjectA都有一个ObjectB列表.我想获得ObjectAs列表中所有ObjectB的一个列表.
如果我有这个对象:
public class ObjectA
{
public string Name {get; set;}
public List<ObjectB> Children {get; set;}
}
public class ObjectB
{
public string ChildName {get; set;}
}
Run Code Online (Sandbox Code Playgroud)
这段代码:
void Main()
{
var myList =
new List<ObjectA>{
new ObjectA{
Name = "ItemA 1",
Children = new List<ObjectB>{
new ObjectB{ChildName = "ItemB 1"},
new ObjectB{ChildName = "ItemB 2"}
}
},
new ObjectA{
Name = "ItemA 2",
Children = new List<ObjectB>{
new ObjectB{ChildName = "ItemB 3"},
new ObjectB{ChildName = "ItemB 4"}
}
}
};
// What code would I put here to concat all the ObjectBs?
}
Run Code Online (Sandbox Code Playgroud)
我想得到List<ObjectB>4 ObjectB件物品:
ItemB 1
ItemB 2
ItemB 3
ItemB 4
你可以使用SelectMany:
var result = mylist.SelectMany(a => a.Children).ToList();
Run Code Online (Sandbox Code Playgroud)
var allObjectB = myList.SelectMany(x=>x.Children).ToList();
Run Code Online (Sandbox Code Playgroud)