我正在使用通用 LinkedList 实现撤消/重做缓冲区。

在这种状态下:
[最佳]
state4(撤销)
state3(撤销)
state2 状态 1
[底部]

当我执行 Push 时,我想删除当前状态之后的所有状态,并推送新的状态。

我目前的绕过是做 while (currentState != list.last), list.removeLast(); 但它很糟糕

LinkedList 只支持 Remove、RemoveFirst 和 removeLast...

我想要像 RemoveAllNodesAfter(LinkedListNode ...) 这样的东西?

如何在不遍历所有节点的情况下很好地编码?也许有扩展?...

最佳答案

我在标准 LinkedList<T> 中看不到任何可以让您执行此操作的内容。如果需要,您可以查看 PowerCollectionsC5 collections - 或者只是滚动您自己的 LinkedList 类型。它是实现起来更简单的集合之一,特别是如果您可以“及时”地添加功能。

关于C# - LinkedList - 如何删除指定节点后的所有节点?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/582122/

10-13 07:34