Как изменить размер двумерного массива? - 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];
            }
        }

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

15   голосов , оценка 4.067 из 5
Похожие ответы