当前位置:  开发笔记 > 编程语言 > 正文

比较日期我的日期为空

如何解决《比较日期我的日期为空》经验,为你挑选了1个好方法。

我想在StartDate和之间的Linq查询中获取所有日期EndDate.我StartDate和我EndDate都是正确的日期,但我的结果不一致.查询中的其他所有内容都有效,而不是日期的比较.我究竟做错了什么?

where (startDate == null || DateTime.Compare((DateTime)startDate,
o.FirstAirDate) < 0) && (endDate == null|| DateTime.Compare(
o.FirstAirDate, (DateTime)endDate) > 0)

日期显示在范围之外,当我将日期移近时,没有任何显示.例如,如果我从12月21日到26日搜索,我会得到这两个日期之间的结果,但也会显示第27个节目的日期.如果我从12月23日到26日搜索没有显示,即使我在12月21日至26日搜索时看到此范围内的日期显示



1> Bardicer..:

如果你想获得的所有实例,其中FirstAirDate介于startDateendDate(,要么startDateendDate可以为null),他们都是DateTime你可能想尝试类似的对象:

var objects = MyObjectsList.Where(o => 
     (!startDate.HasValue || o.FirstAirDate >= startDate.Value) 
  && (!endDate.HasValue || o.FirstAirDate <= endDate.Value))

您可以使用简单的比较运算符比较日期,只需.Value在进行比较时使用可空的DateTime属性 - 在这种情况下,最好先进行空检查.

推荐阅读
殉情放开那只小兔子
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有