var query=from file in Directory.GetFiles(source_path, filename, SearchOption.TopDirectoryOnly)
where File.GetLastWriteTime(file) >= DateTime.Now.AddHours(-1)
select file;
Console.Write(query.ToList().Count.ToString());
我正在使用上面的代码来获取最近一小时内修改过的文件数。寻找更简单的解决方案。即将计数作为查询本身的一部分。
答案 0 :(得分:6)
Count()
可以使用谓词:
Directory.GetFiles(source_path, filename, SearchOption.TopDirectoryOnly).Count(file => File.GetLastWriteTime(file) >= DateTime.Now.AddHours(-1))
答案 1 :(得分:1)
您也可以在查询本身上调用Count()
。
var source = Directory.GetFiles(source_path, filename,
SearchOption.TopDirectoryOnly);
var timeStamp = DateTime.Now.AddHours(-1);
int count = (from file in source
where File.GetLastWriteTime(file) >= timeStamp
select file)
.Count();
Console.Write(count);
更快的解决方案是使用带有谓词的Count()
重载。