Torgach

Amnesty

May 18th, 2021
792
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. using System;
  2. using System.Collections.Generic;
  3. using System.Linq;
  4. using System.Text;
  5. using System.Threading.Tasks;
  6.  
  7. namespace Amnesty
  8. {
  9.     class Program
  10.     {
  11.         static void Main(string[] args)
  12.         {
  13.             Menu menu = new Menu();
  14.             menu.Run();
  15.         }
  16.     }
  17.  
  18.     class Menu
  19.     {
  20.         private List<Criminal> _criminals;
  21.  
  22.         public Menu()
  23.         {
  24.             _criminals = new List<Criminal>()
  25.             {
  26.                 new Criminal("Bob", CriminalArticle.Убийство),
  27.                 new Criminal("Anna", CriminalArticle.Антиправительственное),
  28.                 new Criminal("Max", CriminalArticle.Коррупция),
  29.                 new Criminal("Roze", CriminalArticle.Антиправительственное)
  30.             };
  31.         }
  32.  
  33.         public void Run()
  34.         {
  35.             bool isRun = true;
  36.  
  37.             while (isRun)
  38.             {
  39.                 Console.WriteLine("\n[1] - вывести список преступников\n" +
  40.                     "[2] - Совершить амнистию");
  41.                 Console.Write("Ввод: ");
  42.  
  43.                 switch (Console.ReadLine())
  44.                 {
  45.                     case "1":
  46.                         ShowCriminals();
  47.                         break;
  48.                     case "2":
  49.                         GrantAmnesty();
  50.                         break;
  51.                     case "3":
  52.                         isRun = false;
  53.                         break;
  54.                 }
  55.             }
  56.         }
  57.  
  58.         private void GrantAmnesty()
  59.         {
  60.             Console.WriteLine("Амнистия...");
  61.  
  62.             var filteredCriminals = _criminals.Where(criminal => criminal.CrimeArticle != CriminalArticle.Антиправительственное);
  63.  
  64.             _criminals = filteredCriminals.ToList();
  65.         }
  66.  
  67.         private void ShowCriminals()
  68.         {
  69.             Console.WriteLine("\nПреступники: ");
  70.             foreach (var criminal in _criminals)
  71.             {
  72.                 Console.WriteLine($"{criminal.FullName}: {criminal.CrimeArticle}");
  73.             }
  74.         }
  75.     }
  76.  
  77.     class Criminal
  78.     {
  79.         public string FullName { get; private set; }
  80.         public CriminalArticle CrimeArticle { get; private set; }
  81.  
  82.         public Criminal(string fullName, CriminalArticle crimeArticle)
  83.         {
  84.             FullName = fullName;
  85.             CrimeArticle = crimeArticle;
  86.         }
  87.     }
  88.  
  89.     enum CriminalArticle
  90.     {
  91.         Убийство,
  92.         Коррупция,
  93.         Антиправительственное
  94.     }
  95. }
RAW Paste Data