对于给定的数据 struct ,以下方法最快.将其添加到班级NavigationPath
public void Remove(int id)
{
for (int i = 0; i < Childs.Count; i++)
{
if (Childs[i].Id == id)
{
Childs.RemoveAt(i);
i--;
}
else
{
Childs[i].Remove(id);
}
}
}
如果移除速度如此重要,那么另一个 idea 是使用LinkedList<>
而不是List<>
,因此
public LinkedList<NavigationPath> Childs { get; set; }
然后删除的代码是
public void Remove(int id)
{
var first = Childs.First;
while (first != null)
{
var next = first.Next;
if (first.Value.Id == id)
{
first.List.Remove(first);
}
else
{
first.Value.Remove(id);
}
first = next;
}
}