C# сохранить все элементы в списке в текстовый файл
В последнее время мне очень нравится C#, и я просто тестирую с ним, но, похоже, есть одна часть, которую я не получаю.
В основном я хочу, чтобы при нажатии кнопки "Сохранить" необходимо сохранить все элементы в списке в текстовый файл. На данный момент все, что он придумывает в файле, это System.Windows.Forms.ListBox+ObjectCollection
.
вот что у меня есть до сих пор. С SaveFile.WriteLine(listBox1.Items);
часть я пробовал положить много разных методов, и я не могу понять это. Также имейте в виду, что в конце концов продукт моей программы я хотел бы, чтобы он вернулся к этому текстовому файлу и вывел то, что находится в текстовом файле в список, если это невозможно, то мой плохой, я новичок в C# в конце концов ;)
private void btn_Save_Click(object sender, EventArgs e)
{
const string sPath = "save.txt";
System.IO.StreamWriter SaveFile = new System.IO.StreamWriter(sPath);
SaveFile.WriteLine(listBox1.Items);
SaveFile.ToString();
SaveFile.Close();
MessageBox.Show("Programs saved!");
}
2 ответов
из кода
SaveFile.Метода WriteLine(список listbox1.Items);
ваша программа на самом деле делает это:
SaveFile.WriteLine(listBox1.Items.ToString());
на .ToString()
метод Items
collection возвращает имя типа коллекции (System.Windows.Forms.ListBox+ObjectCollection
) так как это значение по умолчанию .ToString()
поведение, если метод не переопределен.
чтобы сохранить данные значимым образом, вам нужно зациклить каждый элемент и написать его так, как вам нужно. Вот пример код, я предполагаю, что ваши предметы имеют соответствующий .ToString()
реализация:
System.IO.StreamWriter SaveFile = new System.IO.StreamWriter(sPath);
foreach(var item in listBox1.Items)
{
SaveFile.WriteLine(item.ToString());
}
Items
- это коллекция, вы должны перебрать все элементы, чтобы сохранить их
private void btn_Save_Click(object sender, EventArgs e)
{
const string sPath = "save.txt";
System.IO.StreamWriter SaveFile = new System.IO.StreamWriter(sPath);
foreach (var item in listBox1.Items)
{
SaveFile.WriteLine(item);
}
SaveFile.Close();
MessageBox.Show("Programs saved!");
}