我正在尝试使用Mvc5从空列表中读取空dateTime
List<TelecomPayments> telPayments =
db.TelecomPayments
.Where(t => t.TelecomAdmin.TelecomAdminID == telecomAdmin.TelecomAdminID)
.ToList();
telPayments.FirstOrDefault();
DateTime? lastDate = telPayments.FirstOrDefault().ToDate;
if (lastDate == null)
{
if (telPayments.Count == 0)
{
}
}这是我在控制器中指定的,但仍通过补偿
发布于 2018-12-18 16:18:24
在使用LINQ时,有两组函数:返回IEnumerable<...> (或IQueryable<...>)的函数和返回TResult的函数。
如果你编写了一个LINQ语句,总是要确保所有的中间LINQ语句都返回IEnumerable/IQueryable,只有最后一个可以是FirstOrDefault,ToList,Max,Any等。
DateTime? lastDate = telPayments
.Select(telpayment => telpayment.ToDate)
.FirstOrDefault();简单的comme bonjour!
发布于 2018-12-18 16:31:28
如果您使用的是C# 6或更高版本,则可以使用 aka "null conditional" operator
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;https://stackoverflow.com/questions/53827577
复制相似问题