User-335504541 posted
Hi Sam Solomon,
Please try to use the following code:
DataTable dataTbl = new DataTable();
dataTbl.Columns.Add("version");
dataTbl.Columns.Add("data");
dataTbl.Columns.Add("releasedate");
dataTbl.Rows.Add("v1", "d1", "r1");
dataTbl.Rows.Add("v1", "d1", "r2");
dataTbl.Rows.Add("v1", "d1", "r3");
dataTbl.Rows.Add("v1", "d2", "r1");
dataTbl.Rows.Add("v1", "d2", "r2");
dataTbl.Rows.Add("v1", "d2", "r3");
dataTbl.Rows.Add("v2", "d2", "r2");
dataTbl.Rows.Add("v3", "d3", "r3");
IEnumerable<dynamic> data = dataTbl.Rows.Cast<DataRow>()
.GroupBy<DataRow, String>(d => Convert.ToString(d["version"]))
.Select<IGrouping<String, DataRow>, dynamic>(grp =>
{
return new
{
version = grp.Key,
Books = grp.GroupBy<DataRow, dynamic>(g=> Convert.ToString(g["releasedate"])).Select(r=>
{
return new
{
releasedate = r.Key,
data=r.GroupBy(x=> Convert.ToString(x["data"])).Select(Tdata=>Tdata.Key)
};
})
};
});
Best Regards,
Billy