我想按数据表的一列对数据表进行排序,例如名称。虽然我想定义自己的排序方式,例如按文件的扩展名排序,但如何实现这种方式?
问问题
262 次
3 回答
2
最简单和最可扩展的方法是使用Linq-To-DataSet
and Path.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();
于 2013-09-13T10:17:33.703 回答
1
DataTable result = dt.AsEnumerable()
.OrderBy(d=>d.Field<string>("YourFieldName"))
.CopyToDataTable();
于 2013-09-13T10:36:37.507 回答
0
最简单的方法:添加一个隐藏的 DataColumn,您将在其中存储文件扩展名并像往常一样在该 DataColumn 上对 DataTable 进行排序。
于 2013-09-13T10:13:50.423 回答