Ich habe diese LINQ-Anweisung, die Null zurückgibt, wenn die Sequenz leer ist. Ich weise das Ergebnis einem Nullwert zu DateTime
. Später überprüfe ich, ob die DateTime.HasValue
Eigenschaft und ReSharper mir sagt, dass der Ausdruck immer wahr ist.Warum sagt mir ReSharper, dass mein Ausdruck immer wahr ist?
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;
}
Da latestUploadDateInBLSO
kann null sein, wie ist das Ausdruck immer wahr?
Gibt es einen Code zwischen diesen beiden Aussagen? Was ist der Typ von 'UploadedOnDate'? –
Nein, sie sind fortlaufend – Legion
Was ist der Typ von 'UploadedOnDate'? –