Как изменить размер двумерного массива? - C#
Формулировка задачи:
Вот часть кода, создающая массив. По идее массив должен быть динамическим. Но в C# я не нашел "адекватного" способа это сделать.
Поэтому забил
(Цитата с этого форума -"Следует отметить, что динамический массив может быть только одномерным. Нижняя граница его индекса равна 0, а количество содержащихся в нем элементов возвращает его свойство Length.")
Я создаю статический массив, из миллиона записей и 11 элементов. (да 50-100 мб памяти впустую, а жаль некрасиво)
Далее заполняю (изменяю) его элементы, попутно подсчитывая номер последнего измененного элемента.
Теперь мне надо изменить его размер, по возможности с минимальным использованием памяти.
Как это сделать?
public static int excel_array_records_count = 0; //Количество непустых записей в массиве - глобальная переменная public static string[,] excel_array = new string[1000000, 11]; //Глобальный двумерный массив (первый элемент пустой) public void create_excel_array(string file_path) { //Тут код excel_array_records_count++; excel_array[excel_array_records_count, 1] = ((excel_worksheet.Cells[c, column_1]).Value ?? string.Empty).ToString(); excel_array[excel_array_records_count, 1] = ((excel_worksheet.Cells[c, column_2]).Value ?? string.Empty).ToString(); //Тут код }
Решение задачи: «Как изменить размер двумерного массива?»
textual
Листинг программы
string[][][] arr = new string[0][][]; Meth(out arr); for (int i = 0; i < arr.Length; i++) { Array.Resize<string[]>(ref arr[i], arr[i].Length + 1); } public void Meth(out string[][][] arr) { arr = new string[10][][]; for (int i = 0; i < arr.Length; i++) { arr[i] = new string[1][]; arr[i][0] = new string[1]; } }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д