我有一个游戏循环,它绘制了一个对象列表,该列表称为“mylist”并包含大约 1000 个对象,需要不断从列表中添加和删除对象(尤其是快速飞行并击中物体的子弹),每个对象很少第二。
如果我理解正确,如果列表容量足够大,则 List 中的插入实际上是免费的,问题在于删除是 O(n),因为首先我需要在列表中找到该项目,其次它会创建一个新列表拆除后。
如果我可以汇总所有删除并每帧进行一次,那将是有效的,因为我将使用 mylist.Except(listToRemove) 并且这将在 O(n) 中。但不幸的是我做不到。
链表也有问题,因为我需要在列表中找到对象。
有人有更好的建议吗?