c# – 在linq表达式中检查DateTime是否为null


linq表达式中检查DateTime是否为空的方法是什么?我有IEnumeable方法,我从数据库返回数据

return _requestRepository.ExecuteProcReader(
   myRequest,
   new SqlParameter("@userName", user)).Select(items => new Feed
{
   Id = (int)items[0],
   Title = items[1].ToString(),
   Body = items[2].ToString(),
   Link = items[3].ToString(),
   PubDate = (DateTime) items[4]
});

而items [4]是一个日期时间,在数据库中可以为null.那么,如何检查类似的东西

if(items[4] is DateTime)
{
   PubDate = (DateTime) items[4]
}

最佳答案 另一个选择是将PubDate声明为类Feeddeclaration中的可空.

像这样:

class Feed {
  public DateTime? PubDate {get;set;}
  ...
}

这会将数据库中的真相暴露给数据访问层,并将您的空值检查提升一级.

见:Nullable types in c#

点赞