Matriz com índices negativos

Eu tenho uma matriz que estou usando para armazenar dados do mapa para um jogo em que estou trabalhando.

MyMapType[,,] map; 

A razão pela qual estou usando uma matriz fixa em vez de uma coleção é porque as matrizes fixas funcionam muito mais rapidamente.

Agora meu problema é, eu gostaria de ter suporte para níveis negativos de z no jogo. Então, gostaria de poder acessar um índice negativo.

Se isso não for possível, pensei em um par de outras soluções.

Eu estava pensando como uma solução possível ter o nível do solo como um número arbitrário (digamos 10), e qualquer coisa menor que 10 poderia ser considerada negativa. Mas isso não tornaria a matriz 10 vezes maior para nada se não estiver em uso?

Outra solução que considerei foi 'rolar meu próprio', onde você tem um dicionário de arrays 2D, com o nível Z mantido na lista como o índice. Mas isso é muito mais trabalho e não tenho certeza se é lento ou não.

Então, para resumir - alguma maneira de criar um array que suporte um índice negativo? E se não houver - existe uma maneira limpa de 'emular' tal comportamento sem sacrificar muito tempo de CPU ou RAM - observando que estes são mapas de jogos que podem acabar sendo grandes E precisam ser acessados ​​constantemente.

questionAnswers(4)

yourAnswerToTheQuestion