fea*_*net 5 c# linq dynamic sql-order-by func
我有一个Func
定义排序的列表:
var ordering = new List<Func<Person, IComparable>>
{ x => x.Surname, x => x.FirstName };
Run Code Online (Sandbox Code Playgroud)
我可以用......之类的东西来订购结果
people = people.OrderBy(ordering[0]).ThenBy(ordering[1]);
Run Code Online (Sandbox Code Playgroud)
当列表可以包含任意数量的连续排序时,我正试图计算如何执行上述操作.可能吗?
people = people.OrderBy(ordering[0]).ThenBy(ordering[1]).ThenBy(ordering[2]);
Run Code Online (Sandbox Code Playgroud)
是相同的
var orderedPeople = people.OrderBy(ordering[0]);
orderedPeople = orderedPeople.ThenBy(ordering[1]);
orderedPeople = orderedPeople.ThenBy(ordering[2]);
people = orderedPeople;
Run Code Online (Sandbox Code Playgroud)
所以你只需编写一个这样的循环:
if (ordering.Count != 0)
{
var orderedPeople = people.OrderBy(ordering[0]);
for (int i = 1; i < ordering.Count; i++)
{
orderedPeople = orderedPeople.ThenBy(ordering[i]);
}
people = orderedPeople;
}
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
237 次 |
最近记录: |