我列出List<string>
中的文件名(而不是路径)。我必须找到目录中不存在的List<string>
个文件。
现在我正在逐个迭代这些文件,并将它们中的每一个都检查到该文件夹中的所有文件。
是否有任何LINQ方式可以实现相同的目标?
答案 0 :(得分:5)
您可以使用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);
答案 1 :(得分:0)
根据列表中的名称数量(以及目标中的文件数量),您可能会发现迭代方法仍然是效率最高的(但有一些LINQ增强功能):
var missingFiles = names.Where(x => !File.Exists(x));