通过LINQ将RowData转换为GridView列

时间:2010-02-12 05:11:52

标签: linq gridview

我目前正在开展一个项目,我需要在gridview列中显示行数据,例如,如果我的数据是以下形式。

Username   Jack
Phone      2222222
Email      jack@gmail.com

我希望按照gridview中的列显示此数据,如下所示

Username          Phone           Email
jack              2222222       jack@gmail.com

我怎么办?特别是通过LINQ,我可以以任何方式查询数据库,以便以我想要的形式返回数据吗?

1 个答案:

答案 0 :(得分: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());
    }