Explain transpose table

Hello, can explain to me the transpose expression?

^what is happening here?

Hi @helpplease

(From column In enumerable.Range(1, dt_sampleData.ColumnCount-1)
Let rowitem=Enumerable.Range(0,dt_sampleData.RowCount).Select(Function(Row) dt_sampleData.rows(row)(column)).toarray
Select dt_result.Rows.Add(rowitem)).CopyToDatatable

Below is the explanation:

  1. From column In Enumerable.Range(1, dt_sampleData.ColumnCount - 1)
    This part uses a LINQ query to iterate through each column in the source DataTable ( dt_sampleData). The Enumerable.Range(1, dt_sampleData.ColumnCount - 1) generates a sequence of integers starting from 1 and ending at dt_sampleData.ColumnCount - 1. This means it will skip the first column (column 0) of the Data Table as it starts from index 1.

  2. Let rowitem = Enumerable.Range(0, dt_sampleData.RowCount).Select(Function(Row) dt_sampleData.Rows(Row)(column)).ToArray
    For each column obtained in the previous step, this part uses another LINQ query to iterate through each row in the source DataTable (dt_sampleData). It extracts the cell value from the current row and the current column and stores it in an array called rowitem. Enumerable.Range(0, dt_sampleData.RowCount) generates a sequence of integers from 0 to dt_sampleData.RowCount - 1, representing the row indices.

  3. Select dt_result.Rows.Add(rowitem)
    This part uses the Select method to project each rowitem array into a new row in the destination DataTable (outputdt). For each rowitem array, it adds a new row to the dt_result DataTable using the Rows.Add method. The values in the rowitem array are used to populate the columns of the newly added row in dt_result.

  4. .CopyToDataTable
    Finally, the CopyToDataTable method is used to convert the result of the LINQ query into a new DataTable. This will create a new DataTable (dt_result) that contains the data copied from the source DataTable ( dt_sampleData) based on the specified query.

Hope it helps!!

1 Like


If you find solution for your query please find it as solution to close a thread.

Happy Automation :slight_smile:

This topic was automatically closed 3 days after the last reply. New replies are no longer allowed.