我试图理解为什么以下功能不起作用.
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));
}
Run Code Online (Sandbox Code Playgroud)
为什么第二次比较(f.LastWriteTime <= end)省略了指定的结束日期?
第一次比较(f.LastWriteTime > start)确实包括指定的开始日期.
例如,如果我将开始日期设置为2013年1月4日,结束日期设置为2013年1月1日,则函数将返回具有以下日期的文件:
2013年1月4日,1/5/2013,1/6/2013,1/7/2013
尽管在代码中使用了<=,但它不包括1/8/2013.