Mik*_*lls 17 c# sorting datatable
我对DataTable.DefaultView.Sort感到困惑.这是我想要使用它的代码段.
actionLogDT.DefaultView.Sort = "StartDate";
foreach (CustomerService.ActionLogStartEndRow logRow in actionLogDT)
{
// code here
}
Run Code Online (Sandbox Code Playgroud)
我见过的样本不使用foreach循环,因此让我对如何处理这个问题感到困惑.它没有像我想象的那样排序.
我看到.DefaultView返回一个视图,.Table给出了编译错误.
小智 29
actionLogDT.DefaultView.Sort = "StartDate";
actionLogDT = actionLogDT.DefaultView.ToTable();
Run Code Online (Sandbox Code Playgroud)
Jer*_*ine 11
对视图进行排序不会更改表中数据的排序顺序,只会更改视图中的顺序.如果您foreach在视图上执行操作,将DataRowView中的行转换回强类型行,它应该可以工作.
foreach (DataRowView logRowView in actionLogDT.DefaultView)
{
CustomerService.ActionLogStartEndRow logRow = logRowView.Row as CustomerService.ActionLogStartEndRow;
// code here
}
Run Code Online (Sandbox Code Playgroud)
我不得不采取略微不同的方法.这篇文章是我能找到的最接近我的代码的帖子.这是工作结果:
actionLogDT.DefaultView.Sort = "StartDate";
DataView dv = actionLogDT.DefaultView;
foreach (DataRowView logRow in dv) { . . . }
Run Code Online (Sandbox Code Playgroud)
从那里我只需要将值重新投入到它的正确类型中.
(string)logRow["Status"].ToString()
Run Code Online (Sandbox Code Playgroud)