【发布时间】:2019-11-29 16:48:15
【问题描述】:
我有一个时期的日期列表。在此列表的 1 个元素中,有两个变量:startDate 和 endDate。我面临的问题是endDate代表上一个元素的endDate,startDate代表当前元素的开始日期。
原来我的支票是这样的:
if(dateList.Any(d => DateTime.Now > d.startDate && DateTime.Now < d.endDate))
{
// Do something
}
有没有办法访问这个Any()函数中的前一个元素?
【问题讨论】:
-
我从您的数据中了解到,您有一个包含 2 个字段或属性 Start 和 End 日期的类?
-
你必须做更多的修改,例如-->
Enumerable.Range(0, dateList.Count-1).Any(i =>DateTime.Now > dateList[i+1].startDate && DateTime.Now < dateList[i].endDate)。请谨慎使用,因为我没有测试过代码,但在视觉上它至少对我来说似乎是有效的。 -
最好遍历
dateList;可能是一个 for 循环,或者一个 foreach 并在每次迭代时更新一个 previousItem 变量。 -
只需将
dateList转换为在一个项目中具有正确开始日期和结束日期的项目列表。