Mamy następujący fragment kodu:
using System;
using System.Collections;
using System.Collections.Generic;
namespace Challenge03
{
class Program
{
static void Main()
{
Developers developers = new Developers
{
Team =
{
new Person { Name = "Jacek" },
new Person { Name = "Jola", Age = 19}
}
};
foreach(var person in developers)
{
Console.WriteLine("({0}) - {1}",
person.Age ?? -1,
person.Name ?? "N/A");
}
Console.WriteLine("Press enter to exit");
Console.ReadLine();
}
}
public class Developers : IEnumerable<Person>
{
public IList<Person> Team { get; set; }
public Developers()
{
Team = new List<Person>();
}
public IEnumerator<Person> GetEnumerator()
{
return Team.GetEnumerator();
}
IEnumerator IEnumerable.GetEnumerator()
{
return GetEnumerator();
}
}
public class Person
{
public string Name { get; set; }
public int? Age { get; set; }
}
}
Chciałbym móc pozbyć się z inicjalizacji odwołania do Team oraz do Person jednak chciałbym mieć możliwość dodania kolejnych osób – na przykład Tomka, Piotrka (lat 30) oraz osobę bez imienia ale w wieku 50 lat (anonim) i innych jeżeli zajdzie taka potrzeba.
Oczekiwany rezultat dla danych przykładowych:
(-1) - Jacek
(19) - Jola
(-1) - Tomek
(30) - Piotrek
(50) - N/A
Press enter to exit
Co należy zmienić/dodać do klasy Developers by spełnić moje wymagania oraz uzyskać oczeekiwany wynik? Fajnie by było gdyby padło także dlaczego to jest możliwe.
Jeżeli nie padnie poprawna odpowiedź, rozwiązanie podam w przyszłym tygodniu.