lovelyvook

Unit_56

Aug 18th, 2024 (edited)
244
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C# 2.76 KB | None | 0 0
  1. using System;
  2. using System.Collections.Generic;
  3. using System.Linq;
  4.  
  5. namespace Ijunior
  6. {
  7.     internal class Program
  8.     {
  9.         static void Main(string[] args)
  10.         {
  11.             Army army = new Army();
  12.             army.Work();
  13.         }
  14.     }
  15.  
  16.     class Army
  17.     {
  18.         private Database _database = new Database();
  19.  
  20.         public void Work()
  21.         {
  22.             string letter = "Б";
  23.  
  24.             ShowPlatoons();
  25.             Console.WriteLine($"\nПеревод солдат с фамилией на букву {letter}\n");
  26.             _database.TransferSoldiers(letter);
  27.             ShowPlatoons();
  28.         }
  29.  
  30.         private void ShowPlatoons()
  31.         {
  32.             Console.WriteLine("Первый отряд:\n");
  33.             _database.ShowInfo(_database.FirstPlatoon);
  34.             Console.WriteLine("\nВторой отряд:\n");
  35.             _database.ShowInfo(_database.SecondPlatoon);
  36.         }
  37.     }
  38.  
  39.     class Database
  40.     {
  41.         private List<Soldier> _firstPlatoon;
  42.         private List<Soldier> _secondPlatoon;
  43.  
  44.         public Database()
  45.         {
  46.             _firstPlatoon = new List<Soldier>();
  47.             _secondPlatoon = new List<Soldier>();
  48.             AddSoldiers();
  49.         }
  50.  
  51.         public List<Soldier> FirstPlatoon => _firstPlatoon.ToList();
  52.         public List<Soldier> SecondPlatoon => _secondPlatoon.ToList();
  53.  
  54.         public void TransferSoldiers(string letter)
  55.         {
  56.             var transferredSoldiers = _firstPlatoon.Where(soldier => soldier.Name.StartsWith(letter));
  57.  
  58.             _secondPlatoon = _secondPlatoon.Union(transferredSoldiers).ToList();
  59.             _firstPlatoon = _firstPlatoon.Except(transferredSoldiers).ToList();
  60.         }
  61.  
  62.         public void ShowInfo(List<Soldier> platoon)
  63.         {
  64.             foreach (Soldier soldier in platoon)
  65.             {
  66.                 Console.WriteLine($"{soldier.Name}");
  67.             }
  68.         }
  69.  
  70.         private void AddSoldiers()
  71.         {
  72.             _firstPlatoon.Add(new Soldier("Александров"));
  73.             _firstPlatoon.Add(new Soldier("Борисов"));
  74.             _firstPlatoon.Add(new Soldier("Беляев"));
  75.             _firstPlatoon.Add(new Soldier("Гусев"));
  76.             _firstPlatoon.Add(new Soldier("Быков"));
  77.  
  78.             _secondPlatoon.Add(new Soldier("Егоров"));
  79.             _secondPlatoon.Add(new Soldier("Кузнецов"));
  80.             _secondPlatoon.Add(new Soldier("Лебедев"));
  81.             _secondPlatoon.Add(new Soldier("Павлов"));
  82.             _secondPlatoon.Add(new Soldier("Васильев"));
  83.         }
  84.     }
  85.  
  86.     class Soldier
  87.     {
  88.         public Soldier(string name)
  89.         {
  90.             Name = name;
  91.         }
  92.  
  93.         public string Name { get; }
  94.     }
  95. }
Advertisement
Add Comment
Please, Sign In to add comment