如果数字没有值,它应该放在最后(LINQ)

If number have no value it should placed last(LINQ)

我正在使用 linq to sql,我的代码如下所示:

 var agendaLists =
                        dataContext.view_Agendas.Where(m => m.MeetingID == meetingID)
                            .OrderBy(n => n.Number)
                            .ThenBy(n => n.CaseNumber)
                            .ThenByDescending(s => s.MainYN)
                            .ToList();

所以基本上我们的"n.Number"就是订单号。一切正常,其排序的 1、2、3、4 等是正确的。但如果对象在 n.Number 中没有值,它将显示在顶部,但我希望它放在最后。

今天排序是这样的,假设我们得到了 4 个对象:

Null, 1, 2, 3

我希望这样排序:

1, 2, 3, Null

感谢任何形式的帮助。

尝试以下操作:

n => n.Number ?? int.MaxValue

我不记得你是否真的需要检查 DBNull,但它是一样的。

您可以使用这种方法,假设 Numberint?:

var agendaLists = dataContext.view_Agendas
    .Where(m => m.MeetingID == meetingID)
    .OrderBy(m => n.Number.HasValue ? 0 : 1)
    .ThenBy(n => n.Number)
    .ThenBy(n => n.CaseNumber)
    .ThenByDescending(s => s.MainYN)
    .ToList();