我有一个包含子对象列表的对象,每个子对象都包含一个子列表,依此类推。仅使用第一代儿童,我希望尽可能干净,廉价地将所有这些列表组合在一起。我知道我可以做点什么
public List<T> UnifiedListOfTChildren<T>()
{
List<T> newlist = new List<T>();
foreach (childThing in myChildren)
{
newlist = newlist.Concat<T>(childThing.TChildren);
}
return newlist;
}
但是我缺少一种更优雅,更便宜的LINQ方法吗?
编辑如果您按照我的方式登陆此问题并且是SelectMany的新手,我强烈建议您this visual explanation如何使用它。目前谷歌搜索结果靠近顶部,但值得直接跳到。
答案 0 :(得分:3)
var newList = myChildren.SelectMany(c => c.TChildren);