DataTable用C#排序?

时间:2013-09-13 10:11:28

标签: c# datatable

我想通过DataTable的一个列对DataTable进行排序,例如Name.While我想定义我自己的排序方式,比如按文件的扩展排序,如何实现这种方式?

3 个答案:

答案 0 :(得分:2)

最简单,最易扩展的方法是使用Linq-To-DataSetPath.GetExtension

var orderedRows = dataTable.AsEnumerable()
    .Select(row => new { // create an anoymous type for readability
        row, 
        extension = Path.GetExtension(row.Field<string>("Filename"))  
    })
    .OrderBy(x => x.extension)
    .Select(x => x.row);

如果您需要查询中的新DataTable(您可以使用foreach循环播放),请使用:

dataTable = orderedRows.CopyToDataTable();

答案 1 :(得分:1)

DataTable result = dt.AsEnumerable()
                     .OrderBy(d=>d.Field<string>("YourFieldName"))
                     .CopyToDataTable();

答案 2 :(得分:0)

最简单的方法:添加一个隐藏的DataColumn,您将在其中存储文件扩展名,并通常在该DataColumn上对DataTable进行排序。