У меня есть единый тестовый класс, где я занимаюсь тестированием на заводе. В этом модульном тесте я высмеиваю некоторые данные. В издевающихся данных у меня есть NumberModel (родительская модель) внутри NumberModel. У меня есть вложенный список моделей под названием ReferenceModel. У меня есть экземпляры многих списков при добавлении значений для них всех в одну строку, но когда я попытался сделать это с помощью моего вложенного списка моделей, я обнаружил, что не могу.
Вот фрагмент из тестового класса, где я издеваюсь над моими данными.
_numberModel = new NumberModel()
{
value1 = 1,
value2 = x,
referenceList = new List<ReferenceModel> { ID = 55, NumberType = Mean } < -- These show undefined
};
Что я здесь делаю неправильно? Нужно ли переходить к вложенному списку в родительскую модель, чтобы определить список вложенных списков моделей?
Вы смешиваете инициализаторы коллекции и инициализаторы объектов. Код
new List<ReferenceModel> { foo }
Является ли это:
var list = new List<ReferenceModel>();
list.Add(foo);
Поэтому вам нужно создать экземпляр ReferenceModel
:
new List<ReferenceModel> { new ReferenceModel { ID = 55, NumberType = Mean } }
При инициализации списка вы должны инициализировать каждый элемент отдельно:
_numberModel = new NumberModel()
{
value1 = 1,
value2 = x,
referenceList = new List<ReferenceModel> {
new ReferenceModel {ID = 55, NumberType = Mean}
}
};
Синтаксис, который вы используете, хорошо работает для массивов собственных типов (double, ints), но не классов со свойствами.