1
    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());

我正在使用上面的代码来获取过去一小时内修改的文件数。寻找更简单的解决方案。即将计数作为查询本身的一部分。

4

2 回答 2

6

Count()可以带谓词:

Directory.GetFiles(source_path, filename, SearchOption.TopDirectoryOnly).Count(file => File.GetLastWriteTime(file) >= DateTime.Now.AddHours(-1))
于 2012-06-06T18:27:40.470 回答
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()接受谓词的重载。

于 2012-06-06T18:31:43.000 回答