首页 文章

使用一列asc对两个列进行数据排序,另一列为desc c#

提问于
浏览
0

我在datatable中有多个列,如下所示:

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();

2 回答

  • 1
    DataView sortedView = new DataView(dt);
    
      // Sort by COL1 and COL2
      sortedView.Sort = "COL1 DESC, COL2 ASC";
    

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

  • 1

    使用LINQ to 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();
    

相关问题