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