我目前有一个填充了数据的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.Sort
或LINQ
,但我无法让它发挥作用。我尝试了以下这些:
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进行排序操作?谢谢。
答案 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)