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