【发布时间】:2014-09-26 09:04:19
【问题描述】:
我在 DataTable 中获取记录集合并将其绑定到网格控件。在绑定它之前,我根据几个条件对数据进行排序。为简洁起见,我将解释一个测试场景。
我有两个字段类别和国家。我想首先根据类别对记录进行排序,然后再按国家/地区对记录进行排序。但这里的问题是我想将所有空类别值推到最后,然后根据字母顺序进行排序。
为此我正在做 -
var rows = dt.AsEnumerable()
.OrderBy(r => string.IsNullOrEmpty(Convert.ToString(r["Category"]))) //push empty values to bottom
.ThenBy(r => Convert.ToString(r["Category"]))
.ThenBy(r => Convert.ToString(r["Country"]))
但是现在,我需要排序的字段是动态的,我在数组中拥有。
如何使用 lambda 表达式根据字段动态排序记录? (将空值推到最后)
【问题讨论】:
标签: c# .net linq dynamic-linq