c# - 如何使用 LINQ 从子文件夹中递归读取文件名

标签 c# linq lambda

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

现在我正在使用嵌套的 for-each 循环来执行此操作。 有没有办法使用 LINQ 或 LAMBDA 表达式来做到这一点?

最佳答案

您不需要使用 LINQ 来执行此操作 - 它是 built into the framework :

string[] files = Directory.GetFiles(directory, "*.dll",
                                    SearchOption.AllDirectories);

if you're using .NET 4 :

IEnumerable<string> files = Directory.EnumerateFiles(directory, "*.dll",
                                                    SearchOption.AllDirectories);

老实说,LINQ 在递归方面并不是很好。您可能想要编写自己的通用递归扩展方法。考虑到这类问题被问到的频率,我真的应该找个时间自己做一下......

关于c# - 如何使用 LINQ 从子文件夹中递归读取文件名,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3768757/

相关文章:

C++ 11 lambda作为成员变量?

用于比较 LINQtoSQL 等值的 C# 表达式

c# - 每个服务器端事务的加载程序

c# - javascript和C#服务器通信

没有接口(interface)的 C# 插件模式

c# - 如何使用LINQ调整结果?

c# - Distinct() 返回具有用户定义类型的重复项

c# - 使用策略将 List<T> 转换为 Dictionary

javascript - 正则表达式:在一个第一次出现和另一个最后一次出现之间获取

c# - 绘制圆时如何控制圆的大小和位置