次の関数が機能しない理由を理解しようとしています。
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)
2 番目の比較で指定された終了日が省略されるのはなぜですか?
最初の比較(f.LastWriteTime > start)
には、指定された開始日が含まれます。
たとえば、開始日を 2013 年 1 月 4 日、終了日を 2013 年 1 月 8 日に設定すると、関数は次の日付のファイルを返します。
2013 年 1 月 4 日、2013 年 1 月 5 日、2013 年 1 月 6 日、2013 年 1 月 7 日
コードで <= を使用しているにもかかわらず、2013 年 1 月 8 日は含まれません。