0

我在数据表中有多个列,如下所示:

   COL1   COL2 COL3      
   aaa    5    bla
   bbb    8    blablabla
   ccc    11   blabla
   ddd    9    bl
   eee    6    blabl

我正在尝试按 COL1 asc 和 COL2 desc BOTH 对这个数据表进行排序!

我尝试了以下解决方案,但它并没有完全对第二列进行排序:

DataTable dt = GetMyData();
dt.DefaultView.Sort = "COL1";
dt.DefaultView.Sort = "COL2 DESC";
dt = dt.DefaultView.ToTable();
4

2 回答 2

1

使用 LINQ 到数据集/数据表

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();
于 2016-09-05T08:55:25.847 回答
1
  DataView sortedView = new DataView(dt);

  // Sort by COL1 and COL2
  sortedView.Sort = "COL1 DESC, COL2 ASC";

在此之后,您应该在数据视图中对记录进行排序

于 2016-09-05T08:55:35.473 回答