gpt4 book ai didi

c# - Linq to Objects 按任意数量的参数排序

转载 作者:太空狗 更新时间:2023-10-29 22:12:45 25 4
gpt4 key购买 nike

我有一个 Func 列表定义了一个顺序:

var ordering = new List<Func<Person, IComparable>> 
{ x => x.Surname, x => x.FirstName };

我可以用类似...的方式排序结果

people = people.OrderBy(ordering[0]).ThenBy(ordering[1]);

当列表可以包含任意数量的顺序排序时,我正在尝试弄清楚如何执行上述操作。可能吗?

最佳答案

people = people.OrderBy(ordering[0]).ThenBy(ordering[1]).ThenBy(ordering[2]);

相同
var orderedPeople = people.OrderBy(ordering[0]);
orderedPeople = orderedPeople.ThenBy(ordering[1]);
orderedPeople = orderedPeople.ThenBy(ordering[2]);
people = orderedPeople;

所以你只需像这样写一个循环:

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;
}

关于c# - Linq to Objects 按任意数量的参数排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7322983/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com