Rol*_*oll 1 c# generics lambda
我想搜索通过多个文件扩展名的文件,但我想将其发送到列表中.
我怎样才能以干净的方式处理这个问题?
//I wanna pass my list to the Where method
List<string> fileExtensionList
//this works fine
var files = Directory.EnumerateFiles("C:\\path", "*.*", SearchOption.AllDirectories)
.Where(s => s.EndsWith(".jpg") || s.EndsWith(".png"));
Run Code Online (Sandbox Code Playgroud)
谢谢
List<string> fileExtensionList = ...
var files = Directory.EnumerateFiles("C:\\path", "*.*", SearchOption.AllDirectories)
.Where(fileName => fileExtensionList.Any(extension => fileName.EndsWith(extension)));
Run Code Online (Sandbox Code Playgroud)
Any是集合的扩展方法.true如果集合中的任何项目符合您的条件,它将返回.
小智 5
虽然您可以使用EndsWith检查扩展,但有更合适的方法可以使代码更简单:
var files = Directory.EnumerateFiles("C:\\path", "*.*", SearchOption.AllDirectories)
.Where(s => fileExtensionList.Contains(Path.GetExtension(s)));
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
108 次 |
| 最近记录: |