我有类似
的类结构public class Child
{
}
public class Parent
{
public IEnumerable<Child> ListChild { get; set; }
}
并有一个测试类
public class Test
{
public IEnumerable<Parent> GetMethod()
{
List<Parent> collection = new List<Parent>();
//// added multiple items of collection with childs.
var allChildren = from c in collection
select c.ListChild;
var childss = allChildren.Select((c) => c.Select((d)=>d));
return childss;// wrong..and cant compile
}
}
如何编写查询以在不使用foreach的情况下获取一个IEnumerable集合中的所有子项。
由于
答案 0 :(得分:4)
尝试
collection.SelectMany(a => a.ListChild)
但是它的IEnumerable是不是IEnumerable的父亲可以吗?
答案 1 :(得分:4)
您需要使用SelectMany,如下所示:
public IEnumerable<Child> GetMethod()
{
List<Parent> collection = new List<Parent>();
//// added multiple items of collection with childs.
return collection.SelectMany(i => i.ListChild);
}
答案 2 :(得分:0)
将GetMethod
的返回类型更改为IEnumerable<Child>