foreach (Question question in Holder.Questions)
{
//...
}
Holder.cs: 持有人包含问题对象列表
public List<Question> Questions{ get; set; }
Question.cs: Question类包含几个属性,如名称,日期等......
我正在为每个问题添加一个foreach的问题,但我想在一个问题上添加一些东西。
我如何能够访问以下类中的问题对象? 持有人已经填满了当前持有人对象的价值。
换句话说,我该如何处理这个问题。 ....没有foreach循环? 因为我一直得到相同的错误,问题实际上是空的或null(对象没有在引用上设置,....)
不确定如何访问此问题。在这种情况下没有foreach循环! 一些例子证明非常方便!感谢。
答案 0 :(得分:2)
在Holder类的构造函数中,确保初始化Questions列表对象。
this.Questions = new List<Questions>();
此外,您需要在列表中插入Question对象才能访问。
this.Questions.Add(new Question());
我认为您可能正在尝试像访问数组那样访问列表,这是不正确的。
编辑 - 根据您的代码更改,我认为您的说法,每次添加新问题时,您的xml文件每次都会获得所有现有问题的列表,并附加新问题结束,所以像:
在 Q1 退房 Q1
在 Q2 退房 Q1 Q1 Q2
在 Q3 退房 Q1 Q1 Q2 Q1 Q2 Q3
如果这是正确的,您需要更改文件i / o的工作方式。您想要创建一个新的xml文档,而不是附加到现有文档。
答案 1 :(得分:0)
目前还不清楚你在问什么,但我至少可以解决对象引用的错误。
List<>
是引用类型,默认情况下引用类型为null
。所以这个:
public List<Question> Questions{ get; set; }
实例化类时,将默认为null
。对于类成员中具有默认值的引用类型,您需要在构造函数中实例化它们:
public Holder()
{
this.Questions = new List<Question>();
}