假设我有最新的DateTime和所有可能日期的列表.我如何才能有效地找到列表中去年的最近日期时间?
说我的清单包括以下内容:
2014-03-07
2014-03-14
2014-03-21
2014-03-28
...
2015-03-06
2015-03-13
2015-03-20
Run Code Online (Sandbox Code Playgroud)
我最近的约会时间是2015-03-20,但我想找回去年的日期,2014-03-21.
这就是我目前所拥有的,但如果去年的日期是休息一天(例如,我的时间段每周存储一次),它将无效.
public DateTime LastYearDate()
{
List<DateTime> times = GetAllDates();
times.Sort();
times.Reverse();
DateTime currentDate = times.First();
return times.Where(dt => dt == currentDate.AddYears(-1)).First();
}
Run Code Online (Sandbox Code Playgroud)
我不确定我会用什么来递归计算最接近的日期,所以如果你对我应该采取的方向有任何想法(参考任何Linq函数来检查),那将不胜感激.