我正在处理一个可能很常见的情况,我甚至不知道如何在搜索中制定。
我决定寻求指导,不一定要得到任何代码,但要问什么是这种情况下的最佳方法。
我有一个名为arrIntIndexesOfJobsThatWillBeKilled
的列表,其中包含必须从另外5个列表中删除的项目的原始索引。
但是,当我从其他5个列表中删除一个项目时,它们会被重新索引,并且我曾经在arrIntIndexesOfJobsThatWillBeKilled
中拥有的索引现在无效了。
我只想删除链接到原始索引的项...
处理这种情况的最佳算法是什么?
arrIntIndexesOfJobsThatWillBeKilled = arrIntIndexesOfJobsThatWillBeKilled.Distinct.ToList
If arrIntIndexesOfJobsThatWillBeKilled.Count > 0 Then
For Each Job As Integer In arrIntIndexesOfJobsThatWillBeKilled
arrStrJobDescription2.RemoveAt(Job)
arrStrPNDirectories2.RemoveAt(Job)
arrIntJobIDDirectories2.RemoveAt(Job)
arrStrSubDirectories2.RemoveAt(Job)
arrStrNCFile2.RemoveAt(Job)
Next
End If
2条答案
按热度按时间py49o6xq1#
您可以将删除顺序更改为反向-首先删除较大的索引。不熟悉VB,但在C#中看起来像:
然后继续删除。
P.S.
If arrIntIndexesOfJobsThatWillBeKilled.Count > 0 Then
检查是多余的-foreach
可以很好地处理空集合。9o685dep2#
在这里的合作者的指导下,这是工作的代码:
非常感谢再次教育这个平庸的编码器...