Пример #1
0
    public static void Main()
    {
        var input    = string.Empty;
        var soldiers = new List <Soldier>();
        var privates = new List <Soldier>();

        while ((input = Console.ReadLine()).ToLower() != "end")
        {
            var parameters = input.Split(new[] { ' ' }, StringSplitOptions.RemoveEmptyEntries);

            try
            {
                var soldier = SoldierFactory.Get(parameters);

                if (soldier.GetType().Name == "Private")
                {
                    privates.Add(soldier);
                }

                if (soldier.GetType().Name == "LeutenantGeneral")
                {
                    var leutenantGeneral = soldier as LeutenantGeneral;
                    leutenantGeneral.SetPrivates(privates);
                    soldier = leutenantGeneral;
                }

                soldiers.Add(soldier);
            }
            catch
            {
                continue;
            }
        }

        soldiers.ForEach(x => Console.WriteLine(x.ToString()));
    }