C#:新建Request对象时如何向其Loads数组添加Load对象
解决Request对象数组属性初始化错误的方法
你的错误原因是在初始化Loads数组时,错误使用了Loads[0]这个未定义的标识符——当前上下文里还不存在名为Loads的变量,直接构造数组元素即可。
以下是几种正确的写法:
方法1:直接指定数组长度并初始化元素
var requests = new List<Request> { new Request() { RequestId = "1", Name = "ATLGA", Loads = new Load[1] { new Load { IsLoaded = true, LoadId = "L001" } } } };
直接在数组初始化器中传入Load对象,无需通过索引赋值。
方法2:利用类型推断简化数组声明
var requests = new List<Request> { new Request() { RequestId = "1", Name = "ATLGA", Loads = new[] { new Load { IsLoaded = true, LoadId = "L001" } } } };
通过new[]让C#自动推断元素类型为Load,省略显式的数组长度和类型声明。
方法3:先创建集合再转数组(适合多元素场景)
如果需要添加多个Load对象,这种方式更灵活:
var loads = new List<Load> { new Load { IsLoaded = true, LoadId = "L001" }, new Load { IsLoaded = false, LoadId = "L002" } }; var requests = new List<Request> { new Request() { RequestId = "1", Name = "ATLGA", Loads = loads.ToArray() } };
额外建议:如果后续需要频繁修改Loads的元素,可考虑将Request类中的Loads属性类型改为List<Load>,这样添加元素时直接调用Loads.Add(new Load(...))即可,无需处理数组扩容的问题。
内容的提问来源于stack exchange,提问作者QueenBee
相关产品推荐
相关产品推荐

