在LINQ中使用Nullable DateTime时可能出现InvalidOperationException

Boh*_*ohn 1 c# linq

我有一些这样定义的变量:

DateTime? tempDateTime;
Run Code Online (Sandbox Code Playgroud)

而且我有这样的查询:

var recordWithMinDatetime =
    locatedContracts.Where(t => t.OriginalDate.HasValue)
        .OrderBy(t => t.OriginalDate.Value)
        .FirstOrDefault();
    if (recordWithMinDatetime != null)
        tempDateTime = recordWithMinDatetime.OriginalDate.Value;
Run Code Online (Sandbox Code Playgroud)

但是IDE当我将鼠标悬停在上一个任务上时,它说“ Possible InvalidOperationException”

我也已经ReSharper安装了,所以不确定它是否来自R#或VS IDE,但是我仍然需要担心这一点,但是我不明白是什么原因,我做错了或不安全的代码,它给了我这个提示?

And*_*ker 6

这可能是R#错误。我会忽略它。您已OriginalDate.Value通过检查确保不会引发异常HasValue入LINQ查询来。

R#试图提供帮助,并且可能希望进行如下检查:

if (recordWithMinDatetime != null && recordWithMinDatetime.OriginalDate.HasValue)
    tempDateTime = recordWithMinDatetime.OriginalDate.Value;
Run Code Online (Sandbox Code Playgroud)

但是在您的情况下,此检查是多余的。