如何将DirectoryInfo.EnumerateDirectories强制转换为列表

问题描述 投票:0回答:2

此问题与我以前的post有关。在这种情况下,我尝试获取类型为List<DirectoryInfo>的变量,而不是检索目录的全名。

此代码不太有效

DirectoryInfo dirInfo = new DirectoryInfo(path);
List<DirectoryInfo> dirList = dirInfo.EnumerateDirectories("*.", SearchOption.AllDirectories);          

引发错误:

无法将类型'System.Collections.Generic.IEnumerable'隐式转换为'System.Collections.Generic.List'

和此版本:

List<DirectoryInfo> dirList = dirInfo.EnumerateDirectories<DirectoryInfo>("*.", SearchOption.AllDirectories);     

引发此错误:

非泛型方法'DirectoryInfo.EnumerateDirectories()'不能与类型参数一起使用。

任何建议或技巧都将不胜感激。

此问题与我以前的帖子有关。在这种情况下,我尝试获取类型List 的变量,而不是检索目录的全名。此代码...

c# ienumerable
2个回答
1
投票

这是因为EnumerateDirectories方法返回IEnumerable<DirectoryInfo>的类型,而您期望的类型是List<DirectoryInfo>,因此您需要通过添加IEnumerableList强制转换为ToList(),如下所示:


0
投票

List<DirectoryInfo> dirList = dirInfo.EnumerateDirectories<DirectoryInfo>("*.", SearchOption.AllDirectories).ToList(); 返回EnumerateDirectories()而不是IEnumerable<DirectoryInfo>。它们是不同的类型。

© www.soinside.com 2019 - 2024. All rights reserved.