[英]DataTable Sort in C#?
我想按DataTable的一列对DataTable进行排序,例如Name。虽然我想定义自己的排序方式,例如按文件的扩展名排序,但该如何实现呢?
The easiest and most extendable way is to use Linq-To-DataSet
and Path.GetExtension
: 最简单,最可扩展的方法是使用Linq-To-DataSet
和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);
If you need a new DataTable
from the query (you could simply loop it with foreach
) use: 如果您需要查询中的新DataTable
(可以使用foreach
对其进行循环),请使用:
dataTable = orderedRows.CopyToDataTable();
DataTable result = dt.AsEnumerable()
.OrderBy(d=>d.Field<string>("YourFieldName"))
.CopyToDataTable();
最简单的方法:添加一个隐藏的DataColumn,将在其中存储文件扩展名,并照常对该DataColumn排序DataTable。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.