问题很混乱,但如下面的代码所述,它更加清晰:
List<List<T>> listOfList;
// add three lists of List<T> to listOfList, for example
/* listOfList = new {
{ 1, 2, 3}, // list 1 of 1, 3, and 3
{ 4, 5, 6}, // list 2
{ 7, 8, 9} // list 3
};
*/
List<T> list = null;
// how to merger all the items in listOfList to list?
// { 1, 2, 3, 4, 5, 6, 7, 8, 9 } // one list
// list = ??? …Run Code Online (Sandbox Code Playgroud) 在我的代码中,我有一个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"}
}
} …Run Code Online (Sandbox Code Playgroud) 如果我在一个列表中的一个类中有一个列表,其中的类定义如下:
class Class1
{
public int Id { get; set; }
public List<Class2> Class2s { get; set; }
}
class Class2
{
public string Name { get; set; }
public string Value { get; set; }
}
Run Code Online (Sandbox Code Playgroud)
我可以创建一个类型的列表,Result其中Result是:
class Result
{
public int Class1Id { get; set; }
public string Name { get; set; }
public string Value { get; set; }
}
Run Code Online (Sandbox Code Playgroud)
请注意,Result该类包含来自Class1和 的值Class2。
像这样:
var results = new …Run Code Online (Sandbox Code Playgroud) 我有一个查询,它与 LegalEntity 表具有一对多关系,我的目标是获取所有 LegalEntityId 的列表。此时,我有以下 select 生成List<IEnumerable<string>>,是否有一种快速有效的方法,无需循环和创建单独的列表即可将内部列表扁平化为一个。
var legalEntityIds = query.Select(x => x.LegalEntities.Select(y => y.LegalEntityId)).ToList();
Run Code Online (Sandbox Code Playgroud)