Foreach to List对象

时间:2010-12-30 20:27:03

标签: c#

foreach (Question question in Holder.Questions)
{
 //...
}

Holder.cs: 持有人包含问题对象列表

public List<Question> Questions{ get; set; }

Question.cs: Question类包含几个属性,如名称,日期等......

我正在为每个问题添加一个foreach的问题,但我想在一个问题上添加一些东西。

我如何能够访问以下类中的问题对象? 持有人已经填满了当前持有人对象的价值。

换句话说,我该如何处理这个问题。 ....没有foreach循环? 因为我一直得到相同的错误,问题实际上是空的或null(对象没有在引用上设置,....)

不确定如何访问此问题。在这种情况下没有foreach循环! 一些例子证明非常方便!感谢。

2 个答案:

答案 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>();
}