【问题标题】:Cannot implicitly convert type 'bool' to 'System.DateTimeOffset?'无法将类型“bool”隐式转换为“System.DateTimeOffset?”
【发布时间】:2020-02-29 12:00:34
【问题描述】:

只是想在我的一个视图模型中获取一个确实有数据的列表。我已经得到了,如果它没有列出任何数据,但我这样做是为了让它有数据。

它只是在标题中抛出错误。这是代码清单:

    public List<RegisterMark> HasRegistered
        => RegisterMarks
            .Where(rm => rm.TimeRegistered is true)
            .ToList();

非常感谢!

【问题讨论】:

    标签: c# asp.net-mvc model-view-controller asp.net-mvc-viewmodel


    【解决方案1】:

    您应该重新编写 where 表达式以测试非空:

    .Where(rm => rm.TimeRegistered != null)
    

    原因: 未设置属性时,它要么具有默认值,要么为null。如果是后者,你可以简单地测试一下。

    请注意is 仅在 c# 中用于进行类型比较。

    【讨论】:

    • 谢谢 Stefan - 当你看到它时很容易!
    • 旁白:is 也用于常量模式匹配。即:x is 5 of x is "value"
    • 啊,是的,“新”功能不是吗? XD
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-04-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多