2012-05-02 58 views
1

是否有可能在不使用foreach()的情況下使用LINQ-only重寫此函數?如何使用linq-only將多維數組展開爲一維?

IEnumerable<string> Unwrap(IEnumerable<IEnumerable<string>> data) 
    { 
     var result = new List<string>(); 
     foreach (var d in data) 
     { 
      result.AddRange(d); 
     } 
     return result; 
    } 

回答

2

只需使用Enumerable.SelectMany

IEnumerable<string> Unwrap(IEnumerable<IEnumerable<string>> data) 
{ 
    return data.SelectMany(d => d); 
}