2010-02-12 54 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()); 
    }