按两列对数据表进行排序,其中一列为 asc,另一列为 desc c#
Sorting datatable by two columns with one column asc and the other one desc c#
我在数据表中有多个列,如下所示:
COL1 COL2 COL3
aaa 5 bla
bbb 8 blablabla
ccc 11 blabla
ddd 9 bl
eee 6 blabl
我正在尝试按 COL1 升序和 COL2 降序对这个数据表进行排序!
我尝试了以下解决方案,但它并没有完全对第二列进行排序:
DataTable dt = GetMyData();
dt.DefaultView.Sort = "COL1";
dt.DefaultView.Sort = "COL2 DESC";
dt = dt.DefaultView.ToTable();
使用 LINQ DataSet/DataTable
https://msdn.microsoft.com/en-us/library/bb386977.aspx
var newDt = dt.AsEnumerable()
.OrderByDescending(x => x.Field<int>("COL2"))
.ThenBy(x => x.Field<string>("COL1"))
.CopyToDataTable();
DataView sortedView = new DataView(dt);
// Sort by COL1 and COL2
sortedView.Sort = "COL1 DESC, COL2 ASC";
之后您应该在数据视图中对记录进行排序
我在数据表中有多个列,如下所示:
COL1 COL2 COL3
aaa 5 bla
bbb 8 blablabla
ccc 11 blabla
ddd 9 bl
eee 6 blabl
我正在尝试按 COL1 升序和 COL2 降序对这个数据表进行排序!
我尝试了以下解决方案,但它并没有完全对第二列进行排序:
DataTable dt = GetMyData();
dt.DefaultView.Sort = "COL1";
dt.DefaultView.Sort = "COL2 DESC";
dt = dt.DefaultView.ToTable();
使用 LINQ DataSet/DataTable
https://msdn.microsoft.com/en-us/library/bb386977.aspx
var newDt = dt.AsEnumerable()
.OrderByDescending(x => x.Field<int>("COL2"))
.ThenBy(x => x.Field<string>("COL1"))
.CopyToDataTable();
DataView sortedView = new DataView(dt);
// Sort by COL1 and COL2
sortedView.Sort = "COL1 DESC, COL2 ASC";
之后您应该在数据视图中对记录进行排序