LINQ IN在哪里查询

时间:2018-07-02 13:36:21

标签: c# linq foreach

我想编写foreach循环以从外部txt文件中获取具有指定扩展名的所有文件。例如我有在文件变量:  extensions = "jpg,tif,bmp,png"或  extensions "jpg,tif",我只想获取此文件。

到目前为止,我有类似的东西,但我不知道如何继续。

extensions = Extensions.Split(new[] { ',' }, StringSplitOptions.RemoveEmptyEntries);
foreach (string sourceFile in Directory.GetFiles(SourcePath, "*.*", SearchOption.AllDirectories).Where(s => s.EndsWith(extensions.)))
{
}

我不知道如何到达“扩展”数组中的每个元素。我该怎么解决?

1 个答案:

答案 0 :(得分:2)

您可以使用Enumerable.ContainsSystem.IO.Path.GetExtension

string[] extensions =  {".jpg",".tif",".bmp",".png" };
var files = Directory.EnumerateFiles(SourcePath, "*.*", SearchOption.AllDirectories)
     .Where(s => extensions.Contains(Path.GetExtension(s), StringComparer.InvariantCultureIgnoreCase));