Linq で適用する関数を選択することは可能ですか?
私が今持っているものの例:
List<int> list = new List<int>();
bool bDescend = false;
var listOrdered = bDescend ? list.OrderByDescending(it => it) :
list.OrderBy(it => it);
bDescend の値に応じて適用する関数を選択していることがわかります。したがって、実際には 1 つではなく 2 つの Linq クエリがあります。
1つのクエリ内に条件を入れることで回避することはできますか? 多分何かのような
list.ChooseFunction(bDescend ? OrderBy : OrderByDescending)...
実際のコードはより複雑であり、そのようなトリックが可能であれば、コードがはるかに読みやすくなります。
一種のメタプログラミングのように見えます..