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'。 –