Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/django/23.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# Foreach用于列出对象_C# - Fatal编程技术网

C# Foreach用于列出对象

C# Foreach用于列出对象,c#,C#,Holder.cs: Holder包含问题对象的列表 foreach (Question question in Holder.Questions) { //... } 公共列表问题{get;set;} 问题C: 问题类包含几个属性,如名称、日期等 我为每个问题添加的foreach的问题,但是我想在一个问题中添加一些单独的内容 我怎样才能访问下一个类中的问题对象? 持有者已被当前持有者对象的值填充 换句话说,我如何处理这个问题。。。。没有foreach循环? 因为问题实际上为空或null(

Holder.cs: Holder包含问题对象的列表

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