【发布时间】:2013-12-20 02:34:40
【问题描述】:
我想知道 C# 中的某个功能...
我想要List<Object> MyList();,我可以.Add(new Object()) 有限次数。假设我添加了 5 个元素,如果我要添加第六个元素,那么最后一个元素将被销毁,而这第六个元素将被放在列表的顶部。
c# 中是否有任何内置机制可以做到这一点?
【问题讨论】:
-
"last item" 相当含糊。你是指最新的还是最年长的?
-
你的意思是像一个循环缓冲区吗?
-
不存在,但有大量的实现。
-
术语是
Circular Buffer,没有原生支持。您需要在Queue周围编写一个自定义包装器 -
@kostyan 这不是循环缓冲区。循环缓冲区只是一个数组,其中包含指向应该被视为头部和尾部的指针;在大多数实现中,您将确保它不允许 允许人们在添加时覆盖其他项目。它可能是用于实现此概念的合适数据结构,但您可以使用循环缓冲区来实现其他行为,并且您可以使用其他底层实现来实现此行为。
标签: c#