我正在使用SharePoint 2010 REST服务从SP列表中提取信息。其中一个条件是,如果记录中存在日期,并且该日期的年份是今年,则将其包括在内。否则,不要。
我关注的是我必须在日期字段上使用日期转换方法,如果该字段为null,则代码将失败。有没有办法在使用强制转换之前检查值是否为空?
我目前的代码在这里:
Dim results As List(Of CurrentProjectsItem) =
(From items In service.CurrentProjects
Where (items.StatusValue = "Closed" Or CDate(items.DateClosed).Year = Now.Year))
Order By items.Priority
Select items).ToList()
任何帮助都会受到赞赏,我不会经常使用LINQ!
答案 0 :(得分:0)
您可以在您的情况下加入该检查。所以这个:
CDate(items.DateClosed).Year = Now.Year
逻辑上变成了这个:
((items.DateClosed Is Not Nothing) And (CDate(items.DateClosed).Year = Now.Year))
(虽然我很好奇首先是<em>类型 DateClosed
,如果不是Date
?)
修改强>
DateClosed是日期?
在这种情况下,它是一个Nullable(Of Date)
对象,其中包含用于检查此属性的属性:
((items.DateClosed.HasValue) And (items.DateClosed.Value.Year = Now.Year))
无需施法。