如何将IEnumerable 的属性强制转换为列表

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

我正在运行以下代码来枚举网络共享上的所有可用文件夹和子文件夹,

    DirectoryInfo dirInfo = new DirectoryInfo(path);
    var dirList = dirInfo.EnumerateDirectories("*.", SearchOption.AllDirectories);
    foreach (var d in dirList)
    {
        Console.WriteLine(d.FullName);
    }

代码本身可以正常工作。但是,我不想直接声明var dirList,而是直接使用List<string>变量,但是我不清楚如何执行此操作。

c# ienumerable
1个回答
1
投票

这将从EnumerateDirectories返回的序列中提取全名

DirectoryInfo dirInfo = new DirectoryInfo(@"path");
List<string> directories = dirInfo.EnumerateDirectories("*.", SearchOption.AllDirectories)
                                  .Select(x => x.FullName).ToList();

但是避免使用更简单的Directory类避免DirectoryInfo类,您可能得到相同的结果

List<string> directories = Directory.EnumerateDirectories(path,"*.*", SearchOption.AllDirectories).ToList();

0
投票

例如,您可能想查看Linq:

var dirList = dirInfo.EnumerateDirectories("*.", SearchOption.AllDirectories).Select(dir => dir.FullName).ToList();
© www.soinside.com 2019 - 2024. All rights reserved.