2 回答

TA貢獻(xiàn)1155條經(jīng)驗(yàn) 獲得超0個(gè)贊
使用 LINQ 時(shí),有兩組函數(shù):返回IEnumerable<...>
(or IQueryable<...>
) 的函數(shù)和返回 a的函數(shù)TResult
。
如果您編寫 LINQ 語句,請始終確保所有中間 LINQ 語句都返回IEnumerable
/ IQueryable
,只有最后一個(gè)可能是FirstOrDefault
, ToList
, Max
,Any
等。
DateTime? lastDate = telPayments .Select(telpayment => telpayment.ToDate) .FirstOrDefault();

TA貢獻(xiàn)1966條經(jīng)驗(yàn) 獲得超4個(gè)贊
如果您使用的是 C# 6 或更高版本,則可以使用?。又名“空條件”運(yùn)算符:
List<TelecomPayments> telPayments =
db.TelecomPayments
.Where(t => t.TelecomAdmin.TelecomAdminID == telecomAdmin.TelecomAdminID)
.ToList();
DateTime? lastDate = telPayments.FirstOrDefault()?.ToDate;
這只會(huì).ToDate在它之前的部分不為空時(shí)嘗試訪問。
如果您使用的是較舊的 C# 版本,則必須進(jìn)行更明確的 null 檢查:
List<TelecomPayments> telPayments =
db.TelecomPayments
.Where(t => t.TelecomAdmin.TelecomAdminID == telecomAdmin.TelecomAdminID)
.ToList();
DateTime? lastDate = null;
var payment = telPayments.FirstOrDefault();
if (payment != null) lastDate = payment.ToDate;
- 2 回答
- 0 關(guān)注
- 118 瀏覽
添加回答
舉報(bào)