オブジェクトのリストがあるとしましょう:
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>
オブジェクトです。そのため、このような選択的順序付けを行う最適な方法を見つけようとしています。