Advertisement
Vlad_Savitskiy

Union

Jun 30th, 2020
100
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C# 3.64 KB | None | 0 0
  1. using System;
  2. using System.Collections.Generic;
  3. using System.Linq;
  4.  
  5. namespace CSLightFirst
  6. {
  7.     class Program
  8.     {
  9.         private static void Main()
  10.         {
  11.             List<Soldier> firstSoldiers = GenerateSoldiers();
  12.             List<Soldier> secondSoldiers = GenerateSoldiers();
  13.  
  14.             while (true)
  15.             {
  16.                 Console.WriteLine("Выберите, что Вам нужно сделать:\n" +
  17.                                   "  1 - Перевести бойцов из 1 отряда во второй\n" +
  18.                                   "  2 - Показать первый отряд военных\n" +
  19.                                   "  3 - Показать второй отряд военных\n");
  20.                 Console.Write("Ваш ответ: ");
  21.  
  22.                 switch (Console.ReadLine())
  23.                 {
  24.                     case "1":
  25.                         secondSoldiers = UnionSoldiers(firstSoldiers, secondSoldiers);
  26.                         firstSoldiers = firstSoldiers.Where(soldier => !soldier.Surname.StartsWith("Б")).ToList();
  27.                         Console.Clear();
  28.                         break;
  29.                     case "2":
  30.                         ShowAllSoldiers(firstSoldiers);
  31.                         break;
  32.                     case "3":
  33.                         ShowAllSoldiers(secondSoldiers);
  34.                         break;
  35.                     default:
  36.                         Console.WriteLine("Некорректное введенное значение, попробуйте ещё раз...");
  37.                         break;
  38.                 }
  39.             }
  40.         }
  41.  
  42.         private static List<Soldier> UnionSoldiers(IEnumerable<Soldier> firstSoldiers, IEnumerable<Soldier> secondSoldiers)
  43.         {
  44.             IEnumerable<Soldier> selection = firstSoldiers.Where(soldier => soldier.Surname.StartsWith("Б"));
  45.             return secondSoldiers.Union(selection).ToList();
  46.         }
  47.  
  48.         private static void ShowAllSoldiers(List<Soldier> soldiers)
  49.         {
  50.             Console.Clear();
  51.             Console.WriteLine("Полный список военных:\n");
  52.  
  53.             foreach (Soldier soldier in soldiers)
  54.                 soldier.ShowInfo();
  55.         }
  56.  
  57.         private static List<Soldier> GenerateSoldiers()
  58.         {
  59.             Random rand = new Random();
  60.  
  61.             string[] names = { "Джон", "Хью", "Энн", "Джек", "Уил", "Марк", "Лиз", "Майкл", "Дэвис" };
  62.             string[] surnames = { "Брукс", "Морган", "Смит", "Браун", "Белл", "Сноу", "Миллер", "Борк" };
  63.             string[] rank = { "Лейтенант", "Майор", "Капитан", "Сержант", "Генерал", "Полковник", "Рядовой" };
  64.  
  65.             List<Soldier> soldiers = new List<Soldier>(rand.Next(5, 8));
  66.  
  67.             for (int i = 0; i < soldiers.Capacity; i++)
  68.                 soldiers.Add(new Soldier(
  69.                     names[rand.Next(0, names.Length)],
  70.                     surnames[rand.Next(0, surnames.Length)],
  71.                     rank[rand.Next(0, rank.Length)]));
  72.  
  73.             return soldiers;
  74.         }
  75.     }
  76.  
  77.     class Soldier
  78.     {
  79.         public string Name { get; }
  80.         public string Surname { get; }
  81.         public string Rank { get; }
  82.  
  83.         public Soldier(string name, string surname, string rank)
  84.         {
  85.             Name = name;
  86.             Surname = surname;
  87.             Rank = rank;
  88.         }
  89.  
  90.         public void ShowInfo()
  91.         {
  92.             Console.WriteLine($"  Солдат: {Name} {Surname}\n  Звание: {Rank}\n");
  93.         }
  94.     }
  95. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement