2010-02-12 48 views
1

我目前正在研究一個項目,我需要在gridview列中顯示行數據,例如,如果我的數據處於以下格式。通過LINQ將RowData轉換成GridView列

Username Jack 
Phone  2222222 
Email  [email protected] 

,我想顯示此數據按在GridView的列中,如下

Username   Phone   Email 
jack    2222222  [email protected] 

我會怎麼做呢?特別是通過LINQ,我可以以任何方式查詢數據庫,因此它以我想要的形式返回數據?

回答

0

你想轉置你的數據。這裏有一個可以使用的擴展方法,無恥地從here盜取:

public static IEnumerable<IEnumerable<T>> Transpose<T>(this IEnumerable<IEnumerable<T>> values) 
    { 
     if (values.Count() == 0) 
      return values; 
     if (values.First().Count() == 0) 
      return Transpose(values.Skip(1)); 

     var x = values.First().First(); 
     var xs = values.First().Skip(1); 
     var xss = values.Skip(1); 
     return 
     new[] {new[] {x} 
      .Concat(xss.Select(ht => ht.First()))} 
      .Concat(new[] { xs } 
      .Concat(xss.Select(ht => ht.Skip(1))) 
      .Transpose()); 
    }