如何从Offset开始并遍历整个列表?

Nat*_*ins 1 c# list circular-buffer

所以这就是我的清单.

[0], [1], [2], [3], [4]
Run Code Online (Sandbox Code Playgroud)

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

恩.

[0], [1], [2], [3], [4]
      o-->            
//Start at offset 1 then get 2, 3, 4 then loop back around to zero
Run Code Online (Sandbox Code Playgroud)

EX2.

[0], [1], [2], [3], [4]
                o-->            
//Start at offset 3 then get 4, then loop back around to zero, then 1, 2 
Run Code Online (Sandbox Code Playgroud)

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

基本上不要从0开始并循环回到开始并通过元素返回到偏移量.

Eri*_* J. 6

您真的在描述环形缓冲区或循环缓冲区.

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
}
Run Code Online (Sandbox Code Playgroud)