Implementação de array com índices negativos

Eu estou fazendo um jogo com um mundo que se estende infinitamente em todas as direções. Isso significa que você pode estar na posiçãoX:50, Y:50 ouX:-50, Y:-50. Mas ... eu realmente não posso fazer isso com uma lista C # normal ...

Todas as idéias que tenho parecem ser muito complicadas / ineficientes para trabalhar ...