Как изменить размер двумерного массива? - 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];
- }
- }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д