2
假設我知道設計時的類型,有沒有辦法從IEnumerable
得到IEnumerable<T>
沒有reflection?如何從IEnumerable轉換爲IEnumerable <T>?
我有這個
foreach(DirectoryEntry child in de.Children)
{
// long running code on each child object
}
我試圖使並行化,像這樣
Parallel.ForEach(de.Children,
(DirectoryEntry child) => { // long running code on each child });
但是這並不工作,因爲de.Children是DirectoryEntries
類型。它執行IEnumerable
而不是IEnumerable<DirectoryEntry>
。
您還可以使用'OfType' –
@KooKiz一個很好的觀點,我會更新我的答案。 – Nate
@KooKiz:但無論如何,如果你知道每個元素都是'DirectoryEntry',那就毫無意義。 'OfType'過濾和轉換,所以如果你需要過濾使用'OfType',否則'Cast'。 –