在Directory.EnumerateFiles或Directory.GetFiles中使用Take()

Ric*_*olo -2 .net c# foreach parallel.foreach

在Directory.EnumerateFiles或Directory.GetFiles中允许使用.take()?

我有这个并且有效

    Parallel.ForEach(Directory.EnumerateFiles(sourceFolder, "*", 
               SearchOption.AllDirectories), file =>
    {
         //DO SOMETHING

    });
Run Code Online (Sandbox Code Playgroud)

我只想在例如100个文件中进行循环.所以:

    Parallel.ForEach(Directory.EnumerateFiles(sourceFolder, "*",
              SearchOption.AllDirectories).Take(100), file =>
    {
         //DO SOMETHING

    });
Run Code Online (Sandbox Code Playgroud)

但是这个周期并没有像我预期的那样被记录100次.

为什么?

Jon*_*eet 5

是的,这样做绝对没问题.它会将结果限制为返回的前100个文件EnumerateFiles.如果没有100个文件,它将不会执行块100次......这只是一个限制因素.