我写了以下代码:
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表达式
任何人都指导我如何解决这个问题?
任何帮助都将不胜感激。
谢谢!
答案 0 :(得分:0)
为什么你使用新的List()??
遵循以下模式
IEnumerable<Step> steps = allsteps.Where(step => step.X <= Y);
steps = steps.OrderBy(step => step.X);
注:
IEnumerable不保证订购,但使用IEnumerable的实现可能会或可能不会保证订购。
例如,如果枚举List,则保证顺序,但如果枚举HashSet,则不提供此类保证,但两者都将使用IEnumerable接口进行枚举
也许您正在寻找IOrderedEnumerable接口?它由OrderBy()等扩展方法返回,并允许使用ThenBy()进行后续排序。
答案 1 :(得分:0)
你试过吗
var data = (from s in search
OrderByDescending(c => c.BookingDate)
select s).ToList();
这将产生一个IEnumerable的列表。
答案 2 :(得分:0)
我不确定你为什么需要&#34; new&#34;如果你说GetAvailableSlot返回一个IEnumerable。我认为你的代码看起来应该假设GetAvailableSlot返回IEnumerable:
var data = available_slotsRepositories().GetAvailableSlot(param1,param2).ToList().OrderByDescending(c => c.BookingDate);
您对记录集的所有操作都是对结果进行排序,而不需要声明多个变量。如果这仍然无效,那么我们需要查看更多代码才能看到问题所在...