如何在IEnumerable中使用order子句
本文关键字:order 子句 IEnumerable | 更新日期: 2023-09-27 17:50:50
我写了以下代码:
IEnumerable<Models.bookings> search = new List<bookings>();
search = new available_slotsRepositories().GetAvailableSlot(param1,param2);
var data = from s in search.AsEnumerable().
OrderByDescending(c => c.BookingDate)
select s;
我也试过这个,它不工作:
search.OrderByDescending(c => c.BookingDate);
第三行给出了以下错误:表达式不能包含lambda表达式
有谁能指导我如何解决这个问题吗?
如有任何帮助,不胜感激。
谢谢!
为什么使用new List()??
遵循下面的模式
IEnumerable<Step> steps = allsteps.Where(step => step.X <= Y);
steps = steps.OrderBy(step => step.X);
注意:
IEnumerable不保证排序,但是使用IEnumerable的实现可能保证排序,也可能不保证排序。
例如,如果枚举List,顺序是有保证的,但如果枚举HashSet,则不提供这样的保证,但两者都将使用IEnumerable接口枚举
也许你正在寻找IOrderedEnumerable接口?它由OrderBy()等扩展方法返回,并允许使用ThenBy()进行后续排序。
你试过了吗
var data = (from s in search
OrderByDescending(c => c.BookingDate)
select s).ToList();
这将创建一个IEnumerable列表
我不知道为什么你需要"新的",如果你说GetAvailableSlot返回一个IEnumerable。我认为你的代码应该看起来像假设GetAvailableSlot返回IEnumerable是这样的:
var data = available_slotsRepositories().GetAvailableSlot(param1,param2).ToList().OrderByDescending(c => c.BookingDate);
你对记录集所做的就是排序结果,没有必要声明多个变量。如果这仍然不起作用,那么我们需要看到更多的代码,以了解问题是什么…