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

上記のコードを使用して、過去1時間に変更されたファイルの数を取得しています。より簡単な解決策を探しています。つまり、クエリ自体の一部としてカウントを取得します。

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 に答える