Добавление объекта в коллекцию: коллекция объявлена ​​в другом классе - PullRequest
0 голосов
/ 14 октября 2018
class Family
{
    public int FamilyId { get; set; }
    public string Nickname { get; set; }
    public Adults father { get; set; }
     public Adults mother { get; set; }
    public List<Person> Children { get; set; }     
}

class Person
{
    public int Age { get; set; }
    public string Name { get; set; }
}

class Adults : Person 
{
    public string Job { get; set; }
    public int LicNumber { get; set; }
}


class Program
{





    static void Main(string[] args)
    {

        List<Family> Families = new List<Family>();


        Adults father = new Adults { Name = "Jim", Age = 34, Job = "Programmer", LicNumber = 2344454 };
        Adults mother = new Adults { Name = "Amy", Age = 33, Job = "Nurse", LicNumber = 88888 };
        Family fam1 = new Family { Nickname = "Family One", FamilyId = 1, father = father, mother = mother ,    };
        Person child1 = new Person { Name = "Bob", Age = 4 }; 


        Families.Add(fam1);

        PrintFamily(fam1);  

    }

    private static void PrintFamily(Family family)
    {
        Console.WriteLine($"{family.Nickname} ({family.FamilyId})");
        Console.WriteLine("Prents : ");
        Console.WriteLine($"{family.father.Name} - {family.father.Job} - {family.father.LicNumber}");
        Console.WriteLine($"{family.mother.Name} - {family.mother.Job} {family.mother.LicNumber}");
        Console.WriteLine("Kids");
          Console.WriteLine($"( I WANT TO PRINT KIDS NAME AND AGE HERE, but it's not LETTING ME);

        //I want to print Kids information as well. Like I did it with parents.

        Console.ReadKey();
    }



}

Мой вопрос: как добавить Child1 в коллекцию?// Детская коллекция в классе Family?Что я тут не так сделал?Я создал объект на основе класса Person, ввел информацию об имени и возрасте, но он не позволяет мне распечатать информацию о ребенке.

Ответы [ 2 ]

0 голосов
/ 14 октября 2018

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

class Family   
{
 public int FamilyId { get; set; }
 public string Nickname { get; set; }
 public Adults father { get; set; }
 public Adults mother { get; set; }
 public List<Person> Children = new List<Person>();
}

Далее добавить детей:

    static void Main(string[] args)
{

    List<Family> Families = new List<Family>();


    Adults father = new Adults { Name = "Jim", Age = 34, Job = "Programmer", LicNumber = 2344454 };
    Adults mother = new Adults { Name = "Amy", Age = 33, Job = "Nurse", LicNumber = 88888 };
    Family fam1 = new Family { Nickname = "Family One", FamilyId = 1, father = father, mother = mother ,    };
    Person child1 = new Person { Name = "Bob", Age = 4 }; 

    fam1.Children.add(child1); //Here add child to collection

    Families.Add(fam1);

    PrintFamily(fam1);  

}

Следующий список печати детей:

    private static void PrintFamily(Family family)
{
    Console.WriteLine($"{family.Nickname} ({family.FamilyId})");
    Console.WriteLine("Prents : ");
    Console.WriteLine($"{family.father.Name} - {family.father.Job} - {family.father.LicNumber}");
    Console.WriteLine($"{family.mother.Name} - {family.mother.Job} {family.mother.LicNumber}");
    Console.WriteLine("Kids:");
    //read list and pirnt
     foreach(Person per in family.Children){
        Console.WriteLine($"{per.Name} ({per.Age})");
     }

    Console.ReadKey();
}

Надеждаэта помощь.

0 голосов
/ 14 октября 2018

В вашем методе "printFamily" вы никогда не обращаетесь к свойствам элемента объекта child1.Я рекомендую добавить второй параметр для объекта типа Person, а затем иметь другую строку кода, которая обращается к свойствам элемента объекта Person.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...