2012-04-15 204 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(); 
     } 
    } 
相關問題