2012-04-15 93 views
1

我试图将IList<IList<object>>转换为IList<object>,我的意思是有一个唯一的和一个包含第一个元素(对象)的列表。使用LINQ,如何将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.?? .. 
     } 
    } 

回答

4

假设你想flatMap /扁平化list<list<Page>>,你可以做到这一点的SelectMany方法,像这样:

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

,如果你想了解更多关于它,这里是一个great blog post about selectMany extension method

1
public IList<Page> BlockMapTable 
    { 
     get 
     { 
      return PMTs.SelectMany(p => p).ToList(); 
     } 
    } 
相关问题