How do you shift an array of objects while wrapping without iteration?

I must just be tired as this is escaping me and feels like it should be really simple, so please take it easy on me.

If A, B, and C are all classes in memory and the array is elements 0-2:

[0] = A
[1] = B
[2] = C

I want to shift the array so that it turns into this:

[0] = C
[1] = A
[2] = B

I would want to be able to go either direction, but I'd assume if someone could point me towards how to do it in one direction I can figure out the other.

Edit: Thought I should mention, I need this without iteration if at all possible.

Edit 2: This is for a 3D game of pseudo-infinite terrain. Each object in the arrays are chunks of terrain data. I'm wanting to shift them as they contain extremely large jagged arrays with a significant amount of data each. As the player moves, I have terrain sliding (in to/out of) memory. I never considered the performance hit of doing only an array.copy to shift arrays followed by completely rebuilding the next series of chunks.

So to eliminate this relatively minor performance issue, I wanted to shift the arrays with wrapping as described and instead of rebuilding the whole next series of chunks by re-allocating memory, I'm going to re-use the huge jagged arrays mentioned by copying default values into them rather than completely re-initializing them.