C# Foreach用于列出对象
Holder.cs: Holder包含问题对象的列表C# Foreach用于列出对象,c#,C#,Holder.cs: Holder包含问题对象的列表 foreach (Question question in Holder.Questions) { //... } 公共列表问题{get;set;} 问题C: 问题类包含几个属性,如名称、日期等 我为每个问题添加的foreach的问题,但是我想在一个问题中添加一些单独的内容 我怎样才能访问下一个类中的问题对象? 持有者已被当前持有者对象的值填充 换句话说,我如何处理这个问题。。。。没有foreach循环? 因为问题实际上为空或null(
foreach (Question question in Holder.Questions)
{
//...
}
公共列表问题{get;set;}
问题C:
问题类包含几个属性,如名称、日期等
我为每个问题添加的foreach的问题,但是我想在一个问题中添加一些单独的内容
我怎样才能访问下一个类中的问题对象?
持有者已被当前持有者对象的值填充
换句话说,我如何处理这个问题。。。。没有foreach循环?
因为问题实际上为空或null(对象未设置在引用上,…)时,我总是遇到相同的错误
我不知道该如何回答这个问题。在这个上下文中没有foreach循环!
一些例子将证明非常方便!谢谢。在Holder类的构造函数中,确保初始化问题列表对象
public List<Question> Questions{ get; set; }
我认为您可能试图像访问数组一样访问列表,这是不正确的
编辑-根据您的代码更改,我认为您的说法是,每次添加新问题时,您的xml文件每次都会得到一个所有现有问题的列表,并在末尾附加新问题,例如:
在
Q1
出来
Q1
在
问题2
出来
Q1
Q1
问题2
在
第三季度
出来
Q1
Q1
问题2
Q1
问题2
第三季度
如果这是正确的,您需要更改文件i/o的工作方式。您希望创建一个新的xml文档,而不是附加到现有文档中。不清楚您在问什么,但我至少可以解决对象引用的错误
List
是引用类型,默认情况下,引用类型为null
。因此:
this.Questions.Add(new Question());
您的问题毫无意义。似乎您的
SaveEnquete
方法加载xml文件,查找当前enquete节点,然后将所有问题添加到该节点。实际上,您只想添加最后一个问题(在添加每个问题后调用该方法)。您可以更改方法以同时接受Enquete
和Vraag
对象。在xml中找到enquete节点并将vraag添加到该节点中。问题对象被另一个类中的值填充,然后被添加到Holder中。在另一个类中,如果这有意义的话,我希望访问这个问题对象。我试图访问的类中的方法已经在构造函数中给出了Holder。@TakLee:恐怕还不清楚。您能告诉我们实际的类,您是如何填充问题成员的,您是如何从中读取的,以及错误在哪里吗?Ok将在一分钟内完成illustrate@TakLee我更新了我的答案,但问题仍然很模糊,你能告诉我们你的输入/输出是什么样的吗?问题是我已经有了另一个按钮,可以按预期添加一个新的xml文档(更具体地说是一个holder),可以添加多个带有几个问题的holder。实际上,它必须将这些问题融入其中。是的,它得到了类似的东西。这些问题会添加到适当的持有者中。但例如,每个下一个节点都会添加questionText,第一个节点是Q1,然后是Q2、Q2、Q3,其中除一个节点外的所有节点都是空节点。和我想的差不多。两次调用SaveHolder后的示例XML是吗?有可能得到一个小的解决问题的示例,以及一个完整的pastebin示例XML文件吗?我无法复制和粘贴出这样的格式,否则格式会被破坏得难以置信。可以,但不会是英文的。但我认为,你应该清楚地了解发生了什么。谢谢你,再见!这看起来很棒,语言方面的东西不会对我造成太大的伤害,但我不能复制粘贴,所以它会删除所有的行尾,所以我粘贴时会得到一个凌乱的glob。你能把它放在这里,这样我就可以把它复制好吗?
this.Questions.Add(new Question());
public List<Question> Questions{ get; set; }
public Holder()
{
this.Questions = new List<Question>();
}