LINQ で OrderBy をする際に、対象に null が含まれていると、null が先頭になってしまいますね。
null をソート時に制御する
null を後ろに持って行きたい場合は、いったん null ではないキーを並び替えた後、ThenBy でもう一度並び替えをします。var lst = new List<string>() { "A", "B", "C", null };
// null, A, B, C
var orderbyList = lst.OrderBy(x => x);
// A, B, C, null
var orderbyList2 = lst.OrderByDescending(x => !string.IsNullOrEmpty(x)).ThenBy(x => x);
var orderbyList3 = from x in lst
orderby !string.IsNullOrEmpty(x) descending, x
select x;
