我试图了解为什么以下功能不起作用。
public IEnumerable<LogFile> GetLogs(string directory, DateTime start, DateTime end)
{
DirectoryInfo di = new DirectoryInfo(directory);
return di.GetFiles("*debug.log").Where(f => f.LastWriteTime > start && f.LastWriteTime <= end).Select(f => new LogFile(f.FullName));
}
为什么第二次比较(f.LastWriteTime <= end)
省略了指定的结束日期?
第一个比较(f.LastWriteTime > start)
确实包括指定的开始日期。
例如,如果我将开始日期设置为 2013 年 1 月 4 日,将结束日期设置为 2013 年 1 月 8 日,则函数返回具有以下日期的文件:
2013 年 1 月 4 日、2013 年 1 月 5 日、2013 年 1 月 6 日、2013 年 1 月 7 日
尽管在代码中使用了 <=,但它不包括 2013 年 1 月 8 日。