Ошибка при копировании массива в другой массив - C#
Формулировка задачи:
Всем привет.
Моя задача: получить n-e количество элементов массива, разбив основной массив ArrayLines на определенное количество частей (вводится с клавиатуры).
Что я придумал: узнать, сколько получится строк в каждой части после разбива, после копировать массив с элементами в другой массив
Ругается на строчку Array.Clear(parts, 0, LinesInPart);
Если убрать клир, то ничего не меняется
Пробовал также чистить через parts[0] = "\0", не выходит.
Помогите, пожалуйста
Листинг программы
- int CountParts = Convert.ToInt32(numericUpDown1.Value); // выбранное количество частей
- Double TotalFinishLines = Math.Floor(Convert.ToDouble(CountLines1 / CountParts));
- int LinesInPart = Convert.ToInt32(TotalFinishLines); // количество строк в каждой пачке
- if (LinesInPart < 100)
- {
- MessageBox.Show("Указано слишком большое количество частей для такого количества строк");
- }
- else
- {
- int j = 1;
- while (j <= CountParts)
- {
- string[] parts = new string[LinesInPart]; // создаем массив для будущей части
- Array.Copy(ArrayLines, parts, LinesInPart); // помещаем туда некое количество строк
- parts = parts.Where(n => !string.IsNullOrWhiteSpace(n)).ToArray(); // удаляем пустые строки
- FileStream fs1 = File.Create(FinishFileName+"_"+j+".txt");
- fs1.Close();
- File.WriteAllLines(FinishFileName + "_" + j + ".txt", parts);
- Array.Clear(ArrayLines, 0, LinesInPart); // чистим основной массив для оптимизации
- Array.Clear(parts, 0, LinesInPart); // чистим массив, куда вставлялись строки
- j++;
- }
- MessageBox.Show("Complete!");
- }
Решение задачи: «Ошибка при копировании массива в другой массив»
textual
Листинг программы
- int j = 1;
- while (j <= CountParts)
- {
- string[] parts = new string[LinesInPart]; // создаем массив для будущей части
- Array.Copy(ArrayLines, parts, LinesInPart); // помещаем туда некое количество строк
- //parts = parts.Where(n => !string.IsNullOrWhiteSpace(n)).ToArray(); // удаляем пустые строки
- MessageBox.Show(Convert.ToString(parts.Length)+" "+Convert.ToString(ArrayLines.Length));
- FileStream fs1 = File.Create(FinishFileName + "_" + j + ".txt");
- fs1.Close();
- File.WriteAllLines(FinishFileName + "_" + j + ".txt", parts);
- Array.Reverse(ArrayLines);
- ArrayLines[(CountParts - j)/LinesInPart] = "\0";
- parts = null;
- j++;
- }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д