Вечером, я в затруднительном положении, когда я не могу решить/знать лучший метод для хранения «простых», но больших объемов int
типов данных.
Сейчас я использовал сглаженный массив int[] TheData = new int[size * size];
, потому что я хранил только 1 слой, а теперь мне нужно как минимум 3 слоя. Первоначальный сквозной процесс должен был либо использовать:
Dictionary<uint, int[]> TheNewData = new Dictionary<uint, int[]>();
(Ключом является слой)
Но у меня не было большого опыта работы со словарями, поэтому я считаю, что это вызовет проблемы с доступом к данным через индекс массива, как в плоском массиве TheData[x + y * width] = ...
или просто:
int[,] TheNewData = new int[LayerCount, size * size];
Приведенный выше вариант заставляет меня чувствовать себя очень грязным.
Я мог бы даже утроить исходный размер плоского массива и применить смещение к следующему слою...
В любом случае, я также должен принять во внимание смехотворно большие карты, например, ширина x высота были 1000 x 1000 (тайлов), это 1 000 000 плитки должны храниться как int
где-то (я думаю...). Таким образом, доступ к данным должен быть достаточно быстрым, так как я также буду иметь дело с потенциальным обновлением всего "активного" слоя.
Если бы вы могли "объяснить", почему предложенный вами метод лучше всего подходит, мы были бы вам очень признательны, спасибо.