【C#】LINQのOrderByで0以下の値だけ後ろに降順ソートしたい

2023.06.23

CATEGORY : C#.NET プログラミング

あんみんどうふです。

LINQで普通にOrderByすると昇順でソートされますが、場合によっては0以下の数字を後ろにソートしたい時もあります。
1,2,3,4ときて-1が来るのも違和感があるので、できれば0以下は降順にしたい。

解決策

OrderByで0未満を指定、1つ目のThenByで0を指定、2つ目のThenByで通常のソートをすると0以下を後ろにしつつ降順でソートできます。
最初のOrderBy時点で0以下としてソートすると0以下は後ろになるものの負の値が昇順になってしまうので、ソートを分けて行う必要があります。