У меня есть массив, который я использую для хранения данных карты для игры, над которой я работаю.Массив с отрицательными индексами
MyMapType[,,] map;
Причина, по которой я использую фиксированный массив вместо коллекции, заключается в том, что фиксированные массивы работают намного быстрее.
Теперь моя проблема в том, что я хочу поддерживать отрицательные уровни z в игре. Поэтому я хотел бы иметь доступ к отрицательному индексу.
Если это невозможно, я подумал о паре других решений.
Я думал как о возможном решении иметь уровень земли как некоторое произвольное число (скажем, 10), а все, что меньше 10, можно считать отрицательным. Но разве это не сделает массив в 10 раз больше ни для чего, если он не используется?
Другим решением, которое я рассматривал, было «бросить свое», где у вас есть словарь 2D-массивов, причем уровень Z удерживается в списке как индекс. Но это намного больше работы, и я не уверен, что он медленный или нет.
Итак, чтобы суммировать - любой способ создания массива, который поддерживает отрицательный индекс? И если нет - есть ли чистый способ «подражать» подобному поведению, не жертвуя слишком большим количеством процессорного времени или оперативной памяти - отметив, что это игровые карты, которые могут оказаться большими и должны быть доступны постоянно.
Добавление 10 дополнительных элементов в массив не делает их больше на порядок (если только массив не имел только 1 элемент). –
Используйте словарь. – SLaks
@MattBall - Его многомерный массив, не будет 10x10x1 быть 1/10-м размером 10x10x10? – Haedrian