我有一个清单
public class Org
{
public string Name;
public List<OrgPost> OrgPostCollection= new List<OrgPost>();
}
public class OrgPost
{
public string OrgPostTitle;
}
并且:
List<Org> OrgCollection=//GetAll(Org);
现在我有一个像这样的组织列表
[Name,OrgPostCollection]
[Name2,OrgPostCollection2]
...
但我需要这样的东西:
[Name1,OrgPostCollection[0]]
[Name1,OrgPostCollection[1]
[Name2,OrgPostCollection[0]]
[Name2,OrgPostCollection[1]]
...
答案 0 :(得分:2)
您可以执行嵌套选择:
var flatEnumerable = from o in OrgCollection
from p in o.OrgPostCollection
select new Tuple<Org, OrgPost>(o, p);
然后,您可以在select
投影您想要的任何内容,我投射Tuple<Org, OrgPost>
。
结果flatEnumerable
为IEnumerable<Tuple<Org, OrgPost>>
,然后您可以调用ToList
或ToArray
将可枚举解析为列表或数组:
List<Tuple<Org, OrgPost>> flatList = flatEnumerable.ToList();
Tuple<Org, OrgPost>[] flatArray = flatEnumerable.ToArray();