2013-03-18 32 views
-3

在Directory.EnumerateFiles或Directory.GetFiles中使用.take()是允許的?在Directory.EnumerateFiles或Directory.GetFiles中使用()

我有這個和作品

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

    }); 

我想做的週期只有爲例100個文件。所以:

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

    }); 

但週期不能recorred 100時間如我所料。

爲什麼?

+6

您確定源文件夾中至少有100個文件? – 2013-03-18 15:07:56

+0

它運行多少次,你如何測量它運行多少次? – Servy 2013-03-18 15:08:55

+0

是的,我正在嘗試。拍(2),我有20個文件。 – 2013-03-18 15:08:58

回答

5

是的,這樣做絕對沒問題。它會將結果限制爲由EnumerateFiles返回的前100個文件。它將而不是執行該塊100次,如果沒有100個文件,儘管...這只是一個限制因素。

相關問題