假设我有一个对象列表:
var items = new {
new { Order = 0 },
new { Order = 1 },
new { Order = -1 },
new { Order = 3 },
new { Order = 2 },
new { Order = -1 }
};
我需要对其进行排序,以便Order > -1
在按顺序升序排序的列表顶部的项目,而其余项目Order == -1
则跟随它们。
Conact()
有没有比使用andWhere()
子句更优雅的方法:
var orderedItems = items.Where(x => x.Order > -1).OrderBy(x => x.Order)
.Conact(items.Where(x => x.Order == -1);
因此,在排序此列表后将如下所示:
var items = new {
new { Order = 0 },
new { Order = 1 },
new { Order = 2 },
new { Order = 3 },
new { Order = -1 },
new { Order = -1 }
};
实际场景中的列表也items
已经是一个复杂的IQueryable<T>
对象。这就是为什么我试图找到进行这种选择性排序的最佳方式。