Vapio

task39

Jun 21st, 2021 (edited)
452
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C# 2.10 KB | None | 0 0
  1. using System;
  2. using System.Collections.Generic;
  3. using System.Linq;
  4.  
  5. public class Program
  6. {
  7.     public static void Main(string[] args)
  8.     {
  9.         Сourt court = new Сourt();
  10.         court.PrintPrisoners();
  11.         court.FilterPrisoners();
  12.         court.PrintPrisoners();
  13.     }
  14. }
  15.  
  16. public class Сourt
  17. {
  18.     private Random _random;
  19.     private List<Prisoner> _prisoners;
  20.  
  21.     private string[] _crimeNames = { "Antigoverment", "Drug trade", "Violent", "Unsaction Escape" };
  22.     private string[] _names = { "Mike", "Nick", "Valera", "Virgil", "Dante" };
  23.  
  24.     private string _crimeNameLegalized = "Antigoverment";
  25.  
  26.     private int _amountPrisonersMinimum = 10;
  27.     private int _amountPrisonersMaximum = 50;
  28.  
  29.     public Сourt()
  30.     {
  31.         _prisoners = new List<Prisoner>();
  32.         _random = new Random();
  33.         CreatePrisoners();
  34.     }
  35.  
  36.     public void PrintPrisoners()
  37.     {
  38.         Console.WriteLine();
  39.  
  40.         foreach (Prisoner prisoner in _prisoners)
  41.             Console.WriteLine(prisoner);
  42.     }
  43.  
  44.     public void FilterPrisoners()
  45.     {
  46.         _prisoners = _prisoners.Where(prisoner => !prisoner.CrimeName.Equals(_crimeNameLegalized)).ToList();
  47.     }
  48.  
  49.     private void CreatePrisoners()
  50.     {
  51.         int amountCriminals = _random.Next(_amountPrisonersMinimum, _amountPrisonersMaximum);
  52.  
  53.         string name;
  54.         string crimeName;
  55.  
  56.         for (int i = 0; i < amountCriminals; ++i)
  57.         {
  58.             name = _names[_random.Next(_names.Length)];
  59.             crimeName = _crimeNames[_random.Next(_crimeNames.Length)];
  60.             _prisoners.Add(new Prisoner(name, crimeName));
  61.         }
  62.  
  63.         _prisoners.OrderBy(prisoner => prisoner.CrimeName);
  64.     }
  65. }
  66.  
  67. public class Prisoner
  68. {
  69.     public string Name { get; private set; }
  70.     public string CrimeName { get; private set; }
  71.  
  72.     public Prisoner(string name, string crimeName)
  73.     {
  74.         Name = name;
  75.         CrimeName = crimeName;
  76.     }
  77.  
  78.     public override string ToString()
  79.     {
  80.         string result = "";
  81.         result += String.Format($"{Name} - {CrimeName}");
  82.         return result;
  83.     }
  84. }
Add Comment
Please, Sign In to add comment