要转的DataTable结构如下图:
private DataTable ConvertDataTable(DataTable dtSrc)
{
try
{
DataTable dt = new DataTable();
dt.Columns.Add("姓名");
var columns = (from p in dtSrc.Rows.Cast<DataRow>() select p[1].ToString()).Distinct();
foreach (var item in columns) dt.Columns.Add(item);
var data = from k in source.Rows.Cast<DataRow>()
group k by k[0] into m
select new { Key = m.Key.ToString(), Items = m };
data.ToList().ForEach(n =>
{
string[] array = new string[dt.Columns.Count];
array[0] = n.Key;
for (int i = 1; i < dt.Columns.Count; i++)
array[i] = (from p in n.Items
where p[1].ToString() == dt.Columns[i].ToString()
select p[2].ToString())
.SingleOrDefault();
dt.Rows.Add(array);
});
return dt;
}
catch
{
return null;
}
}
转后结果如下图:
每天进步一点点