使用任何dataColumn对Datarows进行排序

San*_*ile 2 c# sorting datatable

我有一个3列的以下数据表.

在此输入图像描述

我想在第二列的基础上对数据表行进行排序.(带标题E)是否有内置函数执行此操作?

我试过了..

    dt.DefaultView.Sort = dt.Columns[1].ColumnName;
    dt.AcceptChanges();
Run Code Online (Sandbox Code Playgroud)

Tim*_*ter 6

可能最简单(也是最强大)的方法是使用Linq-To-DataSetEnumerable.OrderBy:

var tblOrdered = tbl.AsEnumerable()
                    .OrderBy(row => row.Field<int>("E"))
                    .CopyToDataTable();
Run Code Online (Sandbox Code Playgroud)

如果你不能使用Linq,你可以使用DataView.Sort:

DataView view = tbl.DefaultView;
view.Sort = "E ASC";
Run Code Online (Sandbox Code Playgroud)

但那使用了a DataView,原来DataTable是未分类的.

因此,如果您需要该表,您可以使用DataView.ToTable:

tbl = view.ToTable();
Run Code Online (Sandbox Code Playgroud)