Изменить размер массива - C# (187982)

Узнай цену своей работы

Формулировка задачи:

Решаю задачу по загрузке данных из файла в массив. В файле не более 500.000 строк. Я объявляю массив фиксированной длины - миллион строк. С запасом. Это гарантировано перекроет 500.000 строк. Загружаю данные в массив. И считаю количество не пустых записей. Я знаю, что мои данные начинаются с первой записи и заканчиваются MY_table_records_count записью. Файлы бывают разные. Поэтому в моём массиве остаются лишние пустые строки. Это, наверно, занимает память. Как убрать эти лишние строки - изменить размер массива, после его создания? В Delphi это было бы так
Листинг программы
  1. SetLength(MY_table, MY_table_records_count);
В Delphi, такая оптимизация существенно влияет на размер занимаемой оперативной памяти. В c# я такого не заметил, что очень странно. Но всё же - как изменить размер уже созданного двумерного массива? Нужно изменить только количество записей. Код
Листинг программы
  1. public void load_MY_xml_in_memory()
  2. {
  3. // Объявляем двумерный массив
  4. string[,] MY_table = new string[100000, 4];
  5. int MY_table_records_count = 0; //Количество непустых записей в массиве (изначально 0 записей)
  6. xmlDoc.Load("XML_files\\MY\\MY.xml");
  7. foreach (XmlNode task in xmlDoc.DocumentElement.ChildNodes)
  8. {
  9. MY_table_records_count = MY_table_records_count + 1;
  10. MY_table[MY_table_records_count, 0] = task.Attributes.GetNamedItem("ONE").Value;
  11. MY_table[MY_table_records_count, 1] = task.Attributes.GetNamedItem("TWO").Value;
  12. MY_table[MY_table_records_count, 2] = task.Attributes.GetNamedItem("THREE").Value;
  13. MY_table[MY_table_records_count, 3] = task.Attributes.GetNamedItem("FOUR").Value;
  14. }
  15. //Мы создали массив в миллион записей, а реально заполнено, скажем 90000. Остальные пустые.
  16. }

Решение задачи: «Изменить размер массива»

textual
Листинг программы
  1. xmlDoc.Load("XML_files\\MY\\MY.xml");
  2. string[,] MY_table = new string[xmlDoc.DocumentElement.ChildNodes.Count, 4];

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


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

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

14   голосов , оценка 3.929 из 5

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут
Похожие ответы