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 关注
- 100 浏览
添加回答
举报