gpt4 book ai didi

linq - 使用 LINQ/ Entity Framework 以编程方式链接 OrderBy/ThenBy

转载 作者:行者123 更新时间:2023-12-03 12:01:39 25 4
gpt4 key购买 nike

我有一个报告界面,最终用户可以在其中为返回的报告的排序顺序选择多个字段。我遇到的问题是我无法真正链接 OrderBy/ThenBy 方法,因为我正在遍历排序字段列表。我在想这样的事情:

foreach (string sort in data.SortParams)
{
switch (sort)
{
case "state":
query = query.ThenBy(l => l.RegionCode);
break;
case "type":
query = query.ThenBy(l => l.Type);
break;
case "color":
query = query.ThenBy(l => l.Color);
break;
case "category":
query = query.OrderBy(l => l.Category);
break;
}
}

(注意:为简单起见,我删除了确定这是否是第一个排序项的开关。)

关于如何遍历集合以确定排序顺序的任何想法?

最佳答案

如果您使用初始“​​种子”OrderBy,您可以做您想做的事:

编辑 您需要调用OrderBy创建 IOrderedEnumerable (或 IOrderedQueryable )在附加 ThenBy 之前先条款:

var orderedQuery = query.OrderBy(l => 0);
foreach (string sort in data.SortParams)
{
switch (sort)
{
case "state":
orderedQuery = orderedQuery.ThenBy(l => l.RegionCode);
break;
case "type":
orderedQuery = orderedQuery.ThenBy(l => l.Type);
break;
case "color":
orderedQuery = orderedQuery.ThenBy(l => l.Color);
break;
case "category":
orderedQuery = orderedQuery.ThenBy(l => l.Category);
break;
}
}
query = orderedQuery; // cast back to original type.

如果您想要更灵活的东西,请查看 this answer

关于linq - 使用 LINQ/ Entity Framework 以编程方式链接 OrderBy/ThenBy,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13497255/

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