C # Создание экземпляра и добавление значений во вложенный список в модели

1

У меня есть единый тестовый класс, где я занимаюсь тестированием на заводе. В этом модульном тесте я высмеиваю некоторые данные. В издевающихся данных у меня есть NumberModel (родительская модель) внутри NumberModel. У меня есть вложенный список моделей под названием ReferenceModel. У меня есть экземпляры многих списков при добавлении значений для них всех в одну строку, но когда я попытался сделать это с помощью моего вложенного списка моделей, я обнаружил, что не могу.

Вот фрагмент из тестового класса, где я издеваюсь над моими данными.

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

Что я здесь делаю неправильно? Нужно ли переходить к вложенному списку в родительскую модель, чтобы определить список вложенных списков моделей?

Теги:
list
nested
nested-lists

2 ответа

5
Лучший ответ

Вы смешиваете инициализаторы коллекции и инициализаторы объектов. Код

new List<ReferenceModel> { foo }

Является ли это:

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

Поэтому вам нужно создать экземпляр ReferenceModel:

new List<ReferenceModel> { new ReferenceModel { ID = 55, NumberType = Mean } }
  • 0
    Ааа, теперь я понимаю. Спасибо, это сработало.
  • 0
    Я посмотрел и не смог найти ни сообщений, ни примеров, но, возможно, мой поисковый запрос был неверным.
3

При инициализации списка вы должны инициализировать каждый элемент отдельно:

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

Синтаксис, который вы используете, хорошо работает для массивов собственных типов (double, ints), но не классов со свойствами.

  • 0
    Спасибо за быстрый ответ.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню