2 回答

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

TA貢獻1966條經驗 獲得超4個贊
如果您使用的是 C# 6 或更高版本,則可以使用?。又名“空條件”運算符:
List<TelecomPayments> telPayments =
db.TelecomPayments
.Where(t => t.TelecomAdmin.TelecomAdminID == telecomAdmin.TelecomAdminID)
.ToList();
DateTime? lastDate = telPayments.FirstOrDefault()?.ToDate;
這只會.ToDate在它之前的部分不為空時嘗試訪問。
如果您使用的是較舊的 C# 版本,則必須進行更明確的 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 關注
- 119 瀏覽
添加回答
舉報