DataTable重新排列

时间:2014-06-11 14:39:05

标签: asp.net vb.net

所以我有一个有4列的数据表,一列是4,3,6,8,5,下一列是2,3,4,7,5,另外两列只有随机数。我想在ascneding订单中组织第一列,其余列也是如此。 3,4,5,6,8第二列将是,3,2,5,4,7。谢谢你的帮助〜

1 个答案:

答案 0 :(得分:1)

您可以使用Linq-To-DataTableEnumerable.OrderBy + CopyToDataTable

tbl = tbl.AsEnumerable()
    .OrderBy(row => c[0])
    .ThenBy(row  => c[1])
    .CopyToDataTable();

使用您的样本数据:

DataTable tbl = new DataTable();
tbl.Columns.Add("Col1", typeof(int));
tbl.Columns.Add("Col2", typeof(int));
tbl.Columns.Add("Col3", typeof(int));
tbl.Rows.Add(4, 2, 1);
tbl.Rows.Add(3, 3, 2);
tbl.Rows.Add(6, 4, 3);
tbl.Rows.Add(8, 7, 4);
tbl.Rows.Add(5, 5, 5);

结果:

3   3   2
4   2   1
5   5   5
6   4   3
8   7   4

编辑:只是注意到VB.NET标记,它是more readable in VB.NET with query syntax

Dim ordered = From row In tbl Order By row(0), row(1)
tbl = ordered.CopyToDataTable()