1

我有一个包含子对象列表的对象,每个子对象又包含一个子对象列表,依此类推。仅使用第一代孩子,我想尽可能干净和便宜地组合所有这些列表。我知道我可以做类似的事情

    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 的新手,我强烈推荐这个关于如何使用它的可视化解释。目前在谷歌搜索结果中排名靠前,但值得直接跳过。

4

1 回答 1

3
var newList = myChildren.SelectMany(c => c.TChildren);
于 2012-04-21T16:43:11.207 回答