Both way expandable array for voxels

I am looking for solution to create both way expandable 3D array for voxels.
For example, when I start creating object from voxels, initial voxel location in array is [0, 0, 0]. When I will add something on the right, top, forward, it works great but it not work when I need to add voxel before initial voxel, because it pointing to negative values what is out of bounds of array.
How to solve this?

You’ll need a structure that can expand in both directions.

If you have a fixed size game world, just start in the middle of the array. If you need to expand dynamically, you’ll have to make a data structure that fits your needs.

The easiest thing would be to make a class containing two arrays, define a custom indexer for the class, and use one of the arrays for negative indexes. It’s quick and dirty.