C# 初始化包含数组的嵌套对象

C# 初始化包含数组的嵌套对象,c#,.net,xml,C#,.net,Xml,我有一个对象,我需要用一些数据填充它。但是,当我尝试填充参与方时,会得到一个空引用错误 对象:(基本上是一个包含两个对象的对象,其中包含一组其他对象) 初始化: Models.InHouse.TestSpec.InhouseOrder io=new Models.InHouse.TestSpec.InhouseOrder{ Header=new Models.InHouse.TestSpec.InhouseOrderHeader{Party=new Models.InHouse.TestSpec

我有一个对象,我需要用一些数据填充它。但是,当我尝试填充参与方时,会得到一个空引用错误

对象:(基本上是一个包含两个对象的对象,其中包含一组其他对象)

初始化:

Models.InHouse.TestSpec.InhouseOrder io=new Models.InHouse.TestSpec.InhouseOrder{
Header=new Models.InHouse.TestSpec.InhouseOrderHeader{Party=new Models.InHouse.TestSpec.InhouseOrderHeaderParty[10]},
content=newmodels.InHouse.TestSpec.InhouseOrderContent{Item=newmodels.InHouse.TestSpec.InhouseOrderContentItem[100]};

但是当我尝试访问
io.header.Party[0].ID时,我得到一个空引用错误。最后,我将把它序列化为一个XML。

当您初始化时,就像:

Party = new Models.InHouse.TestSpec.InhouseOrderHeaderParty[10]
现在,
参与方
是一个容量为10的
Models.InHouse.TestSpec.InhouseOrderHeaderParty
数组,但这10个数组项的默认值为
Models.InHouse.TestSpec.InhouseOrderHeaderParty
,为空

您可以稍后执行以下操作:

for(int i=0; i< Party.Length; i++)
    Party[i] = new Models.InHouse.TestSpec.InhouseOrderHeaderParty();

Try:if(io.header.Party[0]==null)io.header.Party[0]=new InhouseOrderHeaderParty();您创建了一个参与方数组,但并没有构建每个单独的参与方。和。这个问题必须是独立的。所有的狂欢者代码都不应该在第三方网站上托管。对于null ref异常,我们有一个大的gide行。而[Array Elements]部分被接受的答案解决了这个问题。这很有效。是否有一种方法可以对数组项进行不同的初始化,使其具有Models.InHouse.TestSpec.InhouseOrderHeaderParty的默认值?非常感谢@纽盖伊,非常欢迎你
Header = Enumerable.Range(1,10).Select(x => new Models.InHouse.TestSpec.InhouseOrderHeaderParty()).ToArray();