如果数字没有值,它应该放在最后(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
,但它是一样的。
您可以使用这种方法,假设 Number
是 int?
:
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();
我正在使用 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
,但它是一样的。
您可以使用这种方法,假设 Number
是 int?
:
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();