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.