如何使用LINQ从子文件夹递归读取文件名

Tho*_*eld 5 c# linq lambda

如何dll使用LINQ或LAMBDA表达式递归地从目录及其子文件夹中读取带扩展名的文件名.

现在我正在使用嵌套for-each循环来执行此操作.有没有办法使用LINQ或LAMBDA表达式?

Jon*_*eet 17

您不需要使用LINQ来执行此操作 - 它内置于框架中:

string[] files = Directory.GetFiles(directory, "*.dll",
                                    SearchOption.AllDirectories);
Run Code Online (Sandbox Code Playgroud)

或者如果您使用的是.NET 4:

IEnumerable<string> files = Directory.EnumerateFiles(directory, "*.dll",
                                                    SearchOption.AllDirectories);
Run Code Online (Sandbox Code Playgroud)

说实话,LINQ在递归方面并不是很好.您可能想要编写自己的通用递归扩展方法.考虑到这类问题经常被问到,我自己应该这样做一段时间......

  • @Pramodh:所以也要使用`Path.GetFileName`. (4认同)