Создание объектов на основе уже существующих - C#

Узнай цену своей работы

Формулировка задачи:

Добрый день! Есть список объектов
List<classA> lst = new List<classA>();
В котором хранятся список его наследников с со своими параметрами
lst.Add(new classB("agr1", "agr2", "agr3");
lst.Add(new classC("agr1", "agr2", "agr3");
lst.Add(new classD("agr1", "agr2", "agr3");
Список наследников может быть произвольным (полностью состоять из одного наследника или из рандомных наследников класса родителя) Задача заключается в создание новых объектов в
List<classA> lst2 = new List<classA>();
на основе уже существующих в первом списке Пробовал в классе родителя переопределять конструктор, где в качестве obj выступает наследник от класса родителя
public classA(classA obj)
        {
            this.arg1 = obj.arg1;
            this.arg2 = obj.arg2;
            this.arg3 = obj.arg3;
        }
и добавлять новый объект во второй список
lst2.Add(new classA(lst[i]));
Всё работает, но проблема в том, что создается не наследник, а класс родителя. Есть ли идеи как можно реализовать создание класса наследника на основе уже существующего и добавления его во второй список?

Решение задачи: «Создание объектов на основе уже существующих»

textual
Листинг программы
ClassA a = new ClassB(....); 
ClassB item = a as ClassB;
if(item != null){
 //работаем
}
...

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

5   голосов , оценка 4.6 из 5
Похожие ответы