我可能会以完全错误的方式解决这个问题,但我正在尝试使用名为Load的方法将继承列表中的内容写入文本文件。
public class Appointments : List<Appointment>
这里没有问题,但是当我尝试将列表中的每个项目写入带有代码的文本文件时:
public bool Load(string fileName)
{
TextWriter tw = new StreamWriter("Appointment.txtr");
foreach (string s in List<Appointment>)
{
tw.WriteLine(s + "\n");
}
}
我收到错误"List<Appointment>" is a type which is not valid in the given context.
我有什么想法可以解决这个问题?或者有人有另一种方式去做我想要实现的目标。
感谢阅读!
答案 0 :(得分:3)
List<Appointments>
是一个类型...在foreach循环中,你必须使用IEnumerable类型的类实例。在你的情况下,继承List<Appointments>
的约会又是类型IEnumerable的。因此,约会的实例是你应该在foreach循环中使用的。作为该类本身的加载方法......你可以做这样的事情
public bool Load(string fileName)
{
TextWriter tw = new StreamWriter("Appointment.txtr");
foreach (Appointment a in this)
{
var s = a.ToString(); // code which converts appointment to string
tw.WriteLine(s + "\n");
}
}
答案 1 :(得分:0)
假设Load
是Appointments
的成员,您可以这样做:
public bool Load(string fileName)
{
using(TextWriter tw = new StreamWriter("Appointment.txtr"))
{
foreach (Appointment a in this)
{
tw.WriteLine(a.ToString() + "\n");
}
}
}
通过foreach
对this
进行操作,您将访问基础List
课程中的项目。
注意:您忘记关闭作者,因此我添加了using
块来处理此问题。
另一方面,调用方法Load
有点误导,因为您实际上是将数据保存到文件中,而不是加载它。我怀疑一个更好的名字是Save
。