Как сделать Replace для добавления текста в List
Уже голову себе поломал, не могу сообразить как реализовать :(
Имеется текстовый файл с кодом в ресурсах (stub)
Stub:
namespace Testovik
{
public static class Program
{
Console.Read();
}
public static class Class1
{
public static List<string> ResultText()
{
var text = new List<string>
{
"[Text]",
};
return text;
}
// Должно быть так после использования Replace из формы ( редактирование кода )
/* public static List<string> ResultText()
{
var text = new List<string>
{
"11",
"22",
"33",
// и.т.д
};
return text;
} */
}
}
WinForms:
Содержимое текстового файла Stub кидаю в ресурсы
У меня на форме есть Textbox и listbox через текстбокс вписываю текст, добавляю его в listbox.
// добавляем нужный текст в listbox
private void AddTextToListBox_Click(object sender, EventArgs e)
{
this.listBox1.Items.Add(this.textBox1.Text.Replace("\r", "").Replace("\n", ""));
this.textBox1.Clear();
}
// Кнопка для замены текста исходного кода в ресурсах
private void EditorStub_Click(object sender, EventArgs e)
{
var editor = Properties.Resources.Stub; // Stub - это исходный код который хранится в ресурсах
// Как мне добавить весь текст из listbox в List<string> text (исходного кода Stub )
editor = editor.Replace("[Text]", item.ToString() + "\r\n"); // [Text] - параметр который заменяем на текст из listbox
File.WriteAllText("NewStub.txt", editor );
}
Как мне добавить весь текст из listbox winforms в List<string> text (исходного кода Stub )
Попробовал заменить циклом чтобы весь текст из listbox записался, но записывается только одно значение!
for (int i = 0; i < this.listBox1.Items.Count; i++)
{
editor = editor.Replace("[Text]", "\"" + this.listBox1.Items[i] + "\",");
}
После получается так:
public static List<string> ResultText()
{
var text = new List<string>
{
"11",
};
return text;
}
А как добавить и остальные ? Так же через "[Text]",
[Обновление]
Сделал так: теперь всё добавляется как нужно, но в ряд: "11","22","33",
var sbNewText = new StringBuilder();
for (int i = 0; i < this.listBox1.Items.Count; i++)
{
sbNewText.Append("\"" + this.listBox1.Items[i] + "\",");
}
if (sbNewText.Length > 0) sbNewText.Length--; // Убираем последную запятую
editor = editor.Replace("\"[Text]\"", sbNewText.ToString());
Как сделать чтобы он через новую строчку нормально записывал?
Если я пробую добавить sbNewText.AppendLine() то получается такая каша:
Текст уходит вообще в стенку.
public static List<string> ResultText()
{
var text = new List<string>
{
"11",
"22",
"33",
"44",
,
};
return text;
}