使用LINQ,如何转换IList <ilist <object>&gt;到IList <object>?</object> </ilist <object>

时间:2012-04-15 06:02:46

标签: c# linq lambda linq-to-objects

我正在尝试将IList<IList<object>>转换为IList<object>,我的意思是要有一个唯一的列表,其中包含第一个的所有元素(对象)。

    public IList<IList<Page>> PMTs
    {
        get
        {
            var pmts = Processes.Select(x => x.PageMapTable)
                                .ToList();
            return pmts;
        }
    }

    public IList<Page> BlockMapTable
    {
        get
        {
            // Incomplete
            var btm = PMTs.Select(x => x.?? ..
        }
    }

2 个答案:

答案 0 :(得分:4)

假设您要flatMap / flatten list<list<Page>>,您可以使用selectMany方法执行此操作,如下所示:

public IList<Page> BlockMapTable
{
    get
    {
        var btm = PMTs.SelectMany(x => x).ToList();
    }
}

如果您想了解更多相关信息,请参阅great blog post about selectMany extension method

答案 1 :(得分:1)

public IList<Page> BlockMapTable
    {
        get
        {
            return PMTs.SelectMany(p => p).ToList();
        }
    }