首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >从null列表读取null DateTime

从null列表读取null DateTime
EN

Stack Overflow用户
提问于 2018-12-18 14:37:00
回答 2查看 58关注 0票数 0

我正在尝试使用Mvc5从空列表中读取空dateTime

代码语言:javascript
复制
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)
    {
    }
}

这是我在控制器中指定的,但仍通过补偿

EN

回答 2

Stack Overflow用户

发布于 2018-12-18 16:18:24

在使用LINQ时,有两组函数:返回IEnumerable<...> (或IQueryable<...>)的函数和返回TResult的函数。

如果你编写了一个LINQ语句,总是要确保所有的中间LINQ语句都返回IEnumerable/IQueryable,只有最后一个可以是FirstOrDefaultToListMaxAny等。

代码语言:javascript
复制
DateTime? lastDate = telPayments
    .Select(telpayment => telpayment.ToDate)
    .FirstOrDefault();

简单的comme bonjour!

票数 1
EN

Stack Overflow用户

发布于 2018-12-18 16:31:28

如果您使用的是C# 6或更高版本,则可以使用 aka "null conditional" operator

代码语言:javascript
复制
List<TelecomPayments> telPayments = 
    db.TelecomPayments
        .Where(t => t.TelecomAdmin.TelecomAdminID == telecomAdmin.TelecomAdminID)
        .ToList();

DateTime? lastDate = telPayments.FirstOrDefault()?.ToDate;

这将仅在其前面的部分不为空时尝试访问.ToDate

如果您使用的是较旧的C#版本,则必须执行更显式的null检查:

代码语言:javascript
复制
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;
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/53827577

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档