Вечер, аз съм в затруднено положение, в което не мога да реша/знам кой е най-добрият метод за съхраняване на „прости“, но големи количества от 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
някъде (мисля...). Така че достъпът до данни трябва да бъде сравнително бърз, тъй като също трябва да се справя с актуализирането на потенциално целия "активен" слой.
Ако бихте могли да „обясните“ защо предложеният от вас метод е най-подходящ, което ще бъде високо оценено, благодаря ви.