d我有以下代码来检查是否存在重复的文件名并删除带有重复文件的文件。
我可以通过在第一个列表中查找第一个和最后一个索引然后检查它是否不相同来做到这一点。列表项包含具有名称和 ID 的对象。列表中有大约 550k 个对象。
第二个循环有包含大约 5k 个文件路径的 filesPaths 列表。如果存在重复文件并且它在第二个列表中,那么我可以删除。
以下操作需要一天时间才能完成。有什么办法可以缩短这个时间吗?
foreach (DocNameObject someObjectDataFileRow in someObjectDataFileList)
{
int index1 = Array.FindIndex(someObjectDataFileList.ToArray(), row => row.docName.StartsWith(someObjectDataFileRow.docName));
int index2 = Array.FindLastIndex(someObjectDataFileList.ToArray(), row => row.docName.StartsWith(someObjectDataFileRow.docName));
Console.WriteLine(++i);
if (index1 != index2)
{
foreach (String fileName in filesPaths)
{
try
{
if (fileName.Contains(someObjectDataFileRow.docName))
{
if (File.Exists(fileName))
File.Delete(fileName);
}
}catch (Exception e)
{
Console.WriteLine("Problem deleting:" + e.Message);
}
}
}
}