1

我有一个清单

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]]
   ...
4

1 回答 1

2

您可以进行嵌套选择:

   var flatEnumerable = from o in OrgCollection
                        from p in o.OrgPostCollection
                        select new Tuple<Org, OrgPost>(o, p);

然后你可以在 中投射任何你想要的东西select,我投射Tuple<Org, OrgPost>.

结果flatEnumerableIEnumerable<Tuple<Org, OrgPost>>,然后您可以调用ToListToArray将可枚举对象解析为列表或数组:

List<Tuple<Org, OrgPost>> flatList = flatEnumerable.ToList();
Tuple<Org, OrgPost>[] flatArray = flatEnumerable.ToArray();
于 2012-07-24T09:05:09.580 回答