我是否正确理解orderbydescending实际上并不重新排列列表的顺序?如果是这样,围绕这个最好的方法是什么?
newList= myOldList.OrderByDescending(x => x.DateTime)
.ThenBy(x => x.Status)
.Where(x => x.Status != StatusEnum.Complete).ToList();
这似乎并没有实际重新安排它们,最有效的方法是什么?
谢谢。
答案 0 :(得分:1)
您需要在过滤结果后对其进行排序,Where
会返回IEnumerable
,而不是IOrderedEnumerable
。
但是你说在集合上使用订单方法并不对订单本身进行排序是正确的。它 返回该集合的有序版本。
编辑:正如Tim Schmelter在评论中所说,Where
并未改变订单,但如果您要对数据进行排序,则最好返回相应的界面
答案 1 :(得分:1)
您需要更改调用Linq查询链的顺序
newList= myOldList.Where(x => x.Status != StatusEnum.Complete).OrderByDescending(x => x.DateTime)
.ThenBy(x => x.Status)
.ToList();