我目前正在开展一个项目,我需要在gridview列中显示行数据,例如,如果我的数据是以下形式。
Username Jack
Phone 2222222
Email jack@gmail.com
我希望按照gridview中的列显示此数据,如下所示
Username Phone Email
jack 2222222 jack@gmail.com
我怎么办?特别是通过LINQ,我可以以任何方式查询数据库,以便以我想要的形式返回数据吗?
答案 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());
}