LINQ IN where query



我想编写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.)))
{
}

我不知道如何访问"扩展"数组中的每个元素。我该如何解决这个问题?

您可以使用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));

最新更新