我想要一个实现固定大小循环缓冲区的简单类.它应该是高效的,容易在眼睛上,一般打字.
编辑:目前它不需要具备MT功能.我总是可以在以后添加一个锁,在任何情况下它都不会是高并发性的.
方法应该是:.Add和我猜.List,我检索所有条目.第二个想法,我认为应该通过索引器完成检索.在任何时候,我都希望能够通过索引检索缓冲区中的任何元素.但请记住,从一个时刻到下一个Element [n]可能会有所不同,因为循环缓冲区填满并翻转.
这不是一个堆栈,它是一个循环缓冲区.关于"溢出":我希望内部会有一个包含项目的数组,随着时间的推移,缓冲区的头部和尾部将围绕该固定数组旋转.但这应该是用户不可见的.应该没有外部可检测的"溢出"事件或行为.
这不是学校作业 - 它通常用于MRU缓存或固定大小的事务或事件日志.
我想在我的应用程序中添加一个"最近打开"的功能,并想知道是否有一个简单的内置方法来做"溢出"的列表.我的意思是,当你添加超出列表容量的元素时,所有项都会被移位.
所需功能的代码示例(显然不是这样,列表实际上包含A,B,C):
List<string> list = new List<string>();
//if Overflow was 2
list.Add("A");
list.Add("B");
//List now contains A,B
list.Add("C");
//List now contains B,C
Run Code Online (Sandbox Code Playgroud)
对不起这个简单的问题.问题本身是显而易见的(入口计划是从List继承),我只是不喜欢重新发明轮子,并在语言或框架具有该功能时将未来的程序员与自定义对象混淆.