我有一张表,我正在写一些C#
selenium
自动化并需要一些使用Dynamic Linq的帮助。假设我有一个基本的AcctNum
,AcctDate
和AcctName
记录,每个字段可以由用户排序。他们可以选择AcctNum
(asc),AcctDate
(asc),最后选择AcctName
(asc)。动态Linq订购变量
这将是:
var sortedCode = records.OrderBy(r => r.AcctNum)
.ThenBy(r => r.AcctDate)
.ThenBy(r => r.AcctName)
.ToList();
但用户也可以选择AcctNum
(递减),AcctDate
(ASC),最后AcctName
(DESC)。
我想要做的是使用动态Linq并使每个排序顺序变量。
因此,像:
//passed in values:
var varAcctNumOrd = "desc";
var varDateOrd = "asc";
var varAcctOrd = "desc";
var sortedCode = records.OrderBy(r => r.AcctNum, varAcctNumOrd)
.ThenBy(r => r.AcctDate, varDateOrd)
.ThenBy(r => r.AcctNum, varAcctOrd)
.ToList();
这可能吗?
你问的动态方向(上行/下行)或者这些字段也是动态的?顺便说一句,所谓的动态LINQ('System.Linq.Dynamic')与字符串一起工作。 –
嘿伊万。测试用例将为每个字段传递升序或降序的变量。我只需要将这些变量中的每一个传递给排序顺序,这样我就可以验证这些排序在UI中正常工作。 – Dazed
什么是'记录'变量的**类型** - 'IQueryable'或'IEnumerable '? –