基于两列对DataTable进行排序

时间:2017-06-22 02:27:32

标签: c# asp.net sorting datatable

我目前有一个填充了数据的DataTable,但是,我想在使用之前根据两列对其进行排序。

以下是我的DataTable的样子

DataTable dt:

   Date    | Serial Number
22/06/2017 |       2
20/06/2017 |       1
22/06/2017 |       1
20/06/2017 |       2

我在网上进行了研究,并尝试了dt.DefaultView.SortLINQ,但我无法让它发挥作用。我尝试了以下这些:

dt.DefaultView.Sort = "Date, Serial Number";

DataTable newDt = dt.AsEnumerable().OrderBy(r => r.Field<DateTime>("Date"))
.ThenBy(r => r.Field<int>("Serial Number")).CopyToDataTable();

我尝试了上面提到的两种方法,我得到的结果是排序只基于一列,例如:

   Date    | Serial Number
22/06/2017 |       2
22/06/2017 |       1
20/06/2017 |       1
20/06/2017 |       2

但这不是我想要的。以下是我想要的,

预期结果:

   Date    | Serial Number
20/06/2017 |       1
20/06/2017 |       2
22/06/2017 |       1
22/06/2017 |       2

我是否知道是否有办法以这种方式对DataTable进行排序操作?谢谢。

2 个答案:

答案 0 :(得分:3)

以下代码似乎对我有用。

$_SESSION['tag'] = [];
while($row = mysqli_fetch_array($result)) {
  $_SESSION['tag'][] = $row;
}

答案 1 :(得分:1)

在LINQ中你会使用

XXX.OrdyBy(o => o.Field1).ThenBy(o => o.Field2)