Ошибка при копировании массива в другой массив - C#

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

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

Всем привет. Моя задача: получить n-e количество элементов массива, разбив основной массив ArrayLines на определенное количество частей (вводится с клавиатуры). Что я придумал: узнать, сколько получится строк в каждой части после разбива, после копировать массив с элементами в другой массив
Листинг программы
  1. int CountParts = Convert.ToInt32(numericUpDown1.Value); // выбранное количество частей
  2. Double TotalFinishLines = Math.Floor(Convert.ToDouble(CountLines1 / CountParts));
  3. int LinesInPart = Convert.ToInt32(TotalFinishLines); // количество строк в каждой пачке
  4. if (LinesInPart < 100)
  5. {
  6. MessageBox.Show("Указано слишком большое количество частей для такого количества строк");
  7. }
  8. else
  9. {
  10. int j = 1;
  11. while (j <= CountParts)
  12. {
  13. string[] parts = new string[LinesInPart]; // создаем массив для будущей части
  14. Array.Copy(ArrayLines, parts, LinesInPart); // помещаем туда некое количество строк
  15. parts = parts.Where(n => !string.IsNullOrWhiteSpace(n)).ToArray(); // удаляем пустые строки
  16. FileStream fs1 = File.Create(FinishFileName+"_"+j+".txt");
  17. fs1.Close();
  18. File.WriteAllLines(FinishFileName + "_" + j + ".txt", parts);
  19. Array.Clear(ArrayLines, 0, LinesInPart); // чистим основной массив для оптимизации
  20. Array.Clear(parts, 0, LinesInPart); // чистим массив, куда вставлялись строки
  21. j++;
  22. }
  23. MessageBox.Show("Complete!");
  24. }
Ругается на строчку Array.Clear(parts, 0, LinesInPart); Если убрать клир, то ничего не меняется Пробовал также чистить через parts[0] = "\0", не выходит. Помогите, пожалуйста

Решение задачи: «Ошибка при копировании массива в другой массив»

textual
Листинг программы
  1. int j = 1;
  2.                
  3.                 while (j <= CountParts)
  4.                 {
  5.                     string[] parts = new string[LinesInPart]; // создаем массив для будущей части
  6.                     Array.Copy(ArrayLines, parts, LinesInPart); // помещаем туда некое количество строк
  7.                     //parts = parts.Where(n => !string.IsNullOrWhiteSpace(n)).ToArray(); // удаляем пустые строки
  8.                     MessageBox.Show(Convert.ToString(parts.Length)+" "+Convert.ToString(ArrayLines.Length));
  9.                     FileStream fs1 = File.Create(FinishFileName + "_" + j + ".txt");
  10.                     fs1.Close();
  11.                     File.WriteAllLines(FinishFileName + "_" + j + ".txt", parts);
  12.                     Array.Reverse(ArrayLines);
  13.                     ArrayLines[(CountParts - j)/LinesInPart] = "\0";
  14.                     parts = null;
  15.                     j++;
  16.                 }

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


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

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

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

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

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

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