c# - 如何从偏移量开始并遍历整个列表?

标签 c# list circular-buffer

这就是我的 list 。

[0], [1], [2], [3], [4]

我希望能够遍历这些 - 但是这里的技巧是我想从一个偏移量开始然后循环回到那个偏移量?

例如。

[0], [1], [2], [3], [4]
      o-->            
//Start at offset 1 then get 2, 3, 4 then loop back around to zero

ex2.

[0], [1], [2], [3], [4]
                o-->            
//Start at offset 3 then get 4, then loop back around to zero, then 1, 2 

我考虑过使用常规 List<T>并尝试将这个概念实现到 for 循环中,但我不确定如果他们采用更简洁的方式,我是否想这样做。

基本上不要从 0 开始并循环回到起点并遍历元素回到偏移量。

最佳答案

您实际上是在描述环形缓冲区或循环缓冲区。

http://en.wikipedia.org/wiki/Circular_buffer

简单的实现是

int start; // Set your desired start offset

for (int i = start; i < myList.Length; i++)
{
    // do stuff
}

for (int j = 0; j < start; j++)
{
    // do stuff
}

关于c# - 如何从偏移量开始并遍历整个列表?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12556676/

相关文章:

c++ - 为什么创建一个由不同进程共享的环形缓冲区如此困难(在 C++ 中),我做错了什么?

c# - 使用具有条件延续的任务

python - 基于概率做出选择 - Python

python - 输入特定值时在列表中定位字典

list - 列表元组的函数

c - 通过线程之间的环形(Circular)缓冲区发送消息(C语言)

emacs - emacs 中的环叫什么?

c# - 如何以编程方式删除本地 tfs 内容?

c# - 接口(interface)列表与派生类型列表 - 无法将表达式类型转换为返回类型

c# - 将泛型类型与 asp.net 用户控件一起使用