如果文件名(不是路径)在List<string>
. 我必须找到List<string>
目录中不存在的文件。
现在我正在一个一个地迭代这些文件,并将它们中的每一个都检查到文件夹中的所有文件中。
是否有任何 LINQ 方法可以实现相同的目标?
如果文件名(不是路径)在List<string>
. 我必须找到List<string>
目录中不存在的文件。
现在我正在一个一个地迭代这些文件,并将它们中的每一个都检查到文件夹中的所有文件中。
是否有任何 LINQ 方法可以实现相同的目标?
您可以使用Enumerable.Except,例如:
List<string> compareList = new List<string>();
//.... items in the list
DirectoryInfo di = new DirectoryInfo("C:\\");
var fileArray = di.GetFiles().Select(r => r.Name).ToArray();
var filesNotPresent = compareList.Except(fileArray);
根据列表中有多少名称(以及目标中有多少文件),您可能会发现迭代方法仍然是最有效的(但有一些 LINQ 增强):
var missingFiles = names.Where(x => !File.Exists(x));