I need to take transpose of data strictly using LINQ,
I have written below LINQ, but its not working,
(
From row In DataTbl
From col In DataTbl.Columns.Cast(Of DataColumn)
Select OP_DT.Rows.Add({col.ColumnName,CStr(row(col.ColumnName))})
).CopyToDataTable
(From d In dt.Columns.Cast(Of System.Data.DataColumn) Select outdt.Rows.Add({d.ColumnName}.Union(dt.AsEnumerable.Select(Function(x) x(d.ColumnName).ToString).ToArray).ToArray)).CopyToDataTable
your output dt should contain number of rows in your input plus one columns…can you please check the same…if your input dt is having 6 rows then we need to have 7 columns in the output dt
To get the output datatable automatically…you can use generate datatable as well…please check below
InputString - String.Join(",",Enumerable.Range(1,dt.RowCount+1))
Thats because of union…it removes duplicates …please try this
(From col In DataTbl.Columns.Cast(Of System.Data.DataColumn) Select OP_DT.Rows.Add({col.ColumnName}.Tolist.Concat(DataTbl.AsEnumerable.Select(Function(x) x(col.ColumnName).ToString).ToArray).ToArray)).CopyToDataTable