【发布时间】:2014-11-25 17:26:39
【问题描述】:
我有 2 个文件集合为 List<FileInfo>。我目前正在使用 2 x foreach 循环遍历每个集合并匹配文件(如下所示)。有没有更快的方法在 LINQ 和.RemoveAt 中找到。
-
我需要匹配的文件名和文件长度。
var sdinfo = new DirectoryInfo(srcPath); var ddinfo = new DirectoryInfo(dstPath); var sFiles = new List<FileInfo>(sdinfo.GetFiles("*", SearchOption.AllDirectories)); var dFiles = new List<FileInfo>(ddinfo.GetFiles("*", SearchOption.AllDirectories)); foreach (var sFile in sFiles) { bool foundFile = false; int i = 0; foreach (var dFile in dFiles) { if (sFile.Name == dFile.Name && sFile.Length == dFile.Length) { foundFile = true; dFiles.RemoveAt(i); } i += 1; } }
干杯。
【问题讨论】:
-
我假设您的示例代码中有错字。 sdinfo 和 ddinfo 都使用 srcPath。见第 1 行和第 2 行
-
是的,那是 O 型。好地方,加油。已编辑。