C#实例化并将值添加到模型中的嵌套列表

时间:2014-12-09 15:26:40

标签: c# list nested nested-lists

我有一个单元测试课,我在工厂做一些测试。在这个单元测试中,我模拟了一些数据。在模拟数据中,我在NumberModel中有NumberModel(父模型),我有一个名为ReferenceModel的嵌套模型列表。我已经在同一行上为它们添加值时实例化了许多列表,但是当我尝试用我的嵌套模型列表执行此操作时,我发现我不能。

这是单元测试类的片段,我在这里嘲笑我的数据。

_numberModel = new NumberModel()
{
   value1 = 1,
   value2 = x,
   referenceList = new List<ReferenceModel> { ID = 55, NumberType = Mean } < -- These show undefined
};

我在这里做错了什么?我是否需要深入查看父模型中的嵌套列表,以便定义嵌套的模型列表?

2 个答案:

答案 0 :(得分:5)

您正在混合集合初始值设定项和对象初始值设定项。代码

new List<ReferenceModel> { foo }

这是:

var list = new List<ReferenceModel>();
list.Add(foo);

所以你需要实例化一个ReferenceModel

new List<ReferenceModel> { new ReferenceModel { ID = 55, NumberType = Mean } }

答案 1 :(得分:3)

初始化列表时,您必须单独初始化每个项目:

_numberModel = new NumberModel()
{
   value1 = 1,
   value2 = x,
   referenceList = new List<ReferenceModel> { 
           new ReferenceModel {ID = 55, NumberType = Mean} 
       }
};

您使用的语法适用于本机类型(double,int)的数组,但不适用于具有属性的类。