如何将 IEnumerable<DirectoryInfo> 的 属性 转换为 List<string>
How to cast property of IEnumerable<DirectoryInfo> to List<string>
我运行使用以下代码枚举网络共享上的所有可用文件夹和子文件夹,
DirectoryInfo dirInfo = new DirectoryInfo(path);
var dirList = dirInfo.EnumerateDirectories("*.", SearchOption.AllDirectories);
foreach (var d in dirList)
{
Console.WriteLine(d.FullName);
}
代码本身工作得很好。但是,我不想声明 var dirList
,而是想直接使用 List<string>
变量,但我不清楚该怎么做。
这将从 EnumerateDirectories
编辑的 return 序列中提取全名
DirectoryInfo dirInfo = new DirectoryInfo(@"path");
List<string> directories = dirInfo.EnumerateDirectories("*.", SearchOption.AllDirectories)
.Select(x => x.FullName).ToList();
Select 方法将 return 一个 IEnumerable,您可以轻松地将其转换为具有 ToList 扩展名的列表。
但是,使用更简单的目录 class 避免 DirectoryInfo class 可以获得相同的结果(仍然需要 ToList 才能对序列 returned 进行操作)
List<string> directories = Directory.EnumerateDirectories(path,"*.*", SearchOption.AllDirectories).ToList();
例如,您可能想查看 Linq:
var dirList = dirInfo.EnumerateDirectories("*.", SearchOption.AllDirectories).Select(dir => dir.FullName).ToList();
我运行使用以下代码枚举网络共享上的所有可用文件夹和子文件夹,
DirectoryInfo dirInfo = new DirectoryInfo(path);
var dirList = dirInfo.EnumerateDirectories("*.", SearchOption.AllDirectories);
foreach (var d in dirList)
{
Console.WriteLine(d.FullName);
}
代码本身工作得很好。但是,我不想声明 var dirList
,而是想直接使用 List<string>
变量,但我不清楚该怎么做。
这将从 EnumerateDirectories
编辑的 return 序列中提取全名DirectoryInfo dirInfo = new DirectoryInfo(@"path");
List<string> directories = dirInfo.EnumerateDirectories("*.", SearchOption.AllDirectories)
.Select(x => x.FullName).ToList();
Select 方法将 return 一个 IEnumerable,您可以轻松地将其转换为具有 ToList 扩展名的列表。
但是,使用更简单的目录 class 避免 DirectoryInfo class 可以获得相同的结果(仍然需要 ToList 才能对序列 returned 进行操作)
List<string> directories = Directory.EnumerateDirectories(path,"*.*", SearchOption.AllDirectories).ToList();
例如,您可能想查看 Linq:
var dirList = dirInfo.EnumerateDirectories("*.", SearchOption.AllDirectories).Select(dir => dir.FullName).ToList();