假設我想訂購表q in T
,按列q.As.OrderByDescending(p => p.Beginning).FirstOrDefault().B.C
。OrderBy當父值爲空時
但是,q.As.OrderByDescending(p => p.Beginning).FirstOrDefault()
或a.B
可能是null,我該如何實現它?
我當前的代碼:
from q in T
let a = q.As.OrderByDescending(p => p.Beginning).FirstOrDefault()
where a != null
let b = a.B
where b!= null
orderby b.C
select q;
或
from q in T
let a = q.As.OrderByDescending(p => p.Beginning).FirstOrDefault()
where a != null && a.B != null
orderby a.B.C
select q;
然而,該代碼僅顯示有作爲和B.我怎樣才能做到不過濾任何記錄排序的所有值的記錄?
與@Aducci解決方案相比,此解決方案是否會降低性能?我認爲這需要3個操作來完成(2選1和聯合)。 –
是的,會有2個排序操作和一個合併操作。我認爲Aducci的解決方案非常好。我只是對現有代碼的一個補充。我會和他一起去的。 –