Meh*_*adi 0 c# linq sorting datatable
我在c#project(winform)上工作.
在我的项目中,我对这样的数据表进行了排序:
dt.DefaultView.Sort = "a ASC, b ASC, c ASC";
Run Code Online (Sandbox Code Playgroud)
现在使用下面的表达式,我排序了一个通用列表,但结果与datatale结果不同.
var newList = oldList.OrderBy(x => x.a).OrderBy(x => x.b).OrderBy(x => x.c).ToList();
Run Code Online (Sandbox Code Playgroud)
如何将我的通用列表排序为数据表结果?(我希望在通用列表中有相同的数据表结果)
谢谢.
使用ThenBy/ ThenByDescendingafter first OrderBy/ OrderByDescending运算符 - 它执行已经排序的序列的后续排序:
var newList = oldList.OrderBy(x => x.a)
.ThenBy(x => x.b)
.ThenBy(x => x.c)
.ToList();
Run Code Online (Sandbox Code Playgroud)
否则,您每次都会按不同的值重新排序完整序列(即您引入了忽略先前排序的新主要排序 - 请参阅MSDN上的备注部分).而且你最终只会按照提供给最后一次OrderBy调用的值(c在你的情况下属性)排序.您当前的代码相当于
dt.DefaultView.Sort = "a ASC";
dt.DefaultView.Sort = "b ASC";
dt.DefaultView.Sort = "c ASC";
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
241 次 |
| 最近记录: |