我有这个LINQ语句,如果序列为空,它将返回null。我将结果分配为可空的DateTime
。后来我检查DateTime.HasValue
属性和ReSharper是否告诉我表达式总是正确的。为什么ReSharper告诉我我的表情永远是真的?
DateTime? latestUploadDateInBLSO = Documents.Where(d => d.DocumentLinkId == documentLinkId &&
d.UploadedInStage.StageNumber == 6 &&
d.DocumentOwnerTeam.TeamId == AuthorUser.Team.TeamId)
.Select(d => d.UploadedOnDate)
.DefaultIfEmpty()
.Max();
if (latestUploadDateInBLSO.HasValue) { // <-- Says this is always true
Documents.Single(d => d.DocumentLinkId == documentLinkId &&
d.UploadedOnDate == latestUploadDateInBLSO &&
d.UploadedInStage.StageNumber == 6 &&
d.DocumentOwnerTeam.TeamId == AuthorUser.Team.TeamId).IsLatestVersion = true;
}
由于latestUploadDateInBLSO
可以为null,该表达式总是如此?
这两个语句之间是否存在任何代码? UploadedOnDate的类型是什么? –
不,它们是连续的 – Legion
'UploadedOnDate'的类型是什么? –