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