我正在向一个文件写一个列表,该列表从我输入的文本中获取表单应用程序中的数据。这可以工作,但它会在每次启动表单时覆盖文件,而不是保存它并添加新数据。如何将“AppendAllLines”或“WriteAllLines”添加到此作为解决方案?
public List<String> listDeliveries()
{
List<String> listDeliveries = new List<string>();
using (StreamWriter writer = new StreamWriter("Database.txt"))
{
foreach (Delivery del in deliveries)
{
String delAsString = del.summary();
listDeliveries.Add(delAsString);
writer.WriteLine(delAsString);
}
}
return listDeliveries;
}
答案 0 :(得分:2)
var listDeliveries = deliveries.Select(d=>d.summary()).ToList();
File.AppendAllLines("Database.txt", listDeliveries);
return listDeliveries;
答案 1 :(得分:1)
如何将“AppendAllLines”或“WriteAllLines”添加到此作为解决方案?
看起来你只是想要:
List<String> listDeliveries = deliveries.Select(x => x.summary()).ToList();
File.AppendAllLines("Database.txt", listDeliveries);
return listDeliveries;
(是的,你可以创建StreamWriter
true
作为第二个参数,但AppendAllLines
更简单......)
答案 2 :(得分:1)
您可以使用ToList
创建列表,File.AppendAllLines
添加列表中的行:
List<string> listDeliveries = deliveries.Select(d => d.summary())
.ToList();
File.AppendAllLines("Database.txt", listDeliveries);
答案 3 :(得分:0)
您可以使用
using (StreamWriter writer = new StreamWriter("Database.txt", true))
追加而不是覆盖
答案 4 :(得分:0)
使用重载的构造函数,允许您指定是否追加。默认值为false
StreamWriter writer = new StreamWriter("Database.txt", true)
答案 5 :(得分:0)
创建StreamWriter时,传入一个布尔值,告诉它将数据附加到文件而不是覆盖。
using (StreamWriter writer = new StreamWriter("Database.txt", true))