所以我有一个有4列的数据表,一列是4,3,6,8,5,下一列是2,3,4,7,5,另外两列只有随机数。我想在ascneding订单中组织第一列,其余列也是如此。 3,4,5,6,8第二列将是,3,2,5,4,7。谢谢你的帮助〜
答案 0 :(得分:1)
您可以使用Linq-To-DataTable
和Enumerable.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()