3

如果文件名(不是路径)在List<string>. 我必须找到List<string>目录中不存在的文件。

现在我正在一个一个地迭代这些文件,并将它们中的每一个都检查到文件夹中的所有文件中。

是否有任何 LINQ 方法可以实现相同的目标?

4

2 回答 2

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);
于 2013-03-12T05:53:20.503 回答
0

根据列表中有多少名称(以及目标中有多少文件),您可能会发现迭代方法仍然是最有效的(但有一些 LINQ 增强):

var missingFiles = names.Where(x => !File.Exists(x));
于 2013-03-12T05:58:14.050 回答