Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- using System;
- using System.Collections.Generic;
- using System.Linq;
- namespace CSLight
- {
- internal class Program
- {
- static void Main(string[] args)
- {
- PersonBase personBase = new PersonBase();
- personBase.ShowSoldiersInfo();
- }
- }
- class PersonBase
- {
- private List<Person> _firstArmy;
- private List<Person> _secondArmy;
- public PersonBase()
- {
- _firstArmy = GenerateSoldiers();
- _secondArmy = GenerateSoldiers();
- }
- public void ShowSoldiersInfo()
- {
- ConsoleColor firstArmyColor = ConsoleColor.Red;
- ConsoleColor secondArmyColor = ConsoleColor.Blue;
- ConsoleColor filteredArmyColor = ConsoleColor.White;
- Console.ForegroundColor = firstArmyColor;
- Console.WriteLine("Все солдаты первой армии");
- ShowList(_firstArmy);
- Console.ForegroundColor = secondArmyColor;
- Console.WriteLine("Все солдаты второй армии");
- ShowList(_secondArmy);
- Console.ForegroundColor = filteredArmyColor;
- ChangeArmies();
- Console.ForegroundColor = firstArmyColor;
- Console.WriteLine("Первая измененная армия");
- ShowList(_firstArmy);
- Console.ForegroundColor = ConsoleColor.Blue;
- Console.WriteLine("Объединенная армия");
- ShowList(_secondArmy);
- Console.ReadKey();
- }
- private void ChangeArmies()
- {
- string surnameCharForFilter = "Б";
- var filteredList = FilterSoldiersByChar(surnameCharForFilter);
- Console.WriteLine("Отфильтрованные солдаты");
- ShowList(filteredList);
- _firstArmy = _firstArmy.Except(filteredList).ToList();
- var unitedList = _secondArmy.Union(filteredList);
- _secondArmy = unitedList.ToList();
- }
- private IEnumerable<Person> FilterSoldiersByChar(string firstChar)
- {
- var filteredList = _firstArmy.Where(soldier => soldier.Surname.StartsWith(firstChar));
- return filteredList;
- }
- private void ShowList(IEnumerable<Person> list)
- {
- foreach (Person person in list)
- {
- Console.WriteLine($"{person.Name} - {person.Surname}");
- }
- }
- private List<Person> GenerateSoldiers()
- {
- PersonCreator creator = new PersonCreator();
- int dataBaseCapacity = 20;
- List<Person> army = new List<Person>();
- for (int i = 0; i < dataBaseCapacity; i++)
- {
- army.Add(creator.CreatePerson());
- }
- return army;
- }
- }
- class PersonCreator
- {
- private List<string> _names;
- private List<string> _surnames;
- private List<string> _weapons;
- private List<string> _ranks;
- public PersonCreator()
- {
- InitSurnames();
- InitNames();
- InitRanks();
- InitWeapons();
- }
- public Person CreatePerson()
- {
- int maxTerm = 50;
- string name = GetRandomValue(_names);
- string surname = GetRandomValue(_surnames);
- string weapon = GetRandomValue(_weapons);
- string rank = GetRandomValue(_ranks);
- int term = UserUtils.GenerateRandomValue(maxTerm);
- return new Person(name, surname, weapon, rank, term);
- }
- private void InitSurnames()
- {
- _surnames = new List<string>();
- _surnames.Add("Смирнов");
- _surnames.Add("Иванов");
- _surnames.Add("Кузнецов");
- _surnames.Add("Бабаев");
- _surnames.Add("Соколов");
- _surnames.Add("Лебедев");
- _surnames.Add("Баранов");
- _surnames.Add("Бобрыкин");
- _surnames.Add("Морозов");
- _surnames.Add("Козлов");
- _surnames.Add("Волков");
- }
- private void InitRanks()
- {
- _ranks = new List<string>();
- _ranks.Add("Новобранец");
- _ranks.Add("Рядовой");
- _ranks.Add("Сержант");
- _ranks.Add("Генерал");
- }
- private void InitNames()
- {
- _names = new List<string>();
- _names.Add("Максим");
- _names.Add("Михаил");
- _names.Add("Александр");
- _names.Add("Дмитрий");
- _names.Add("Денис");
- _names.Add("Илья");
- _names.Add("Андрей");
- _names.Add("Артем");
- _names.Add("Иван");
- _names.Add("Алексей");
- _names.Add("Никита");
- }
- private void InitWeapons()
- {
- _weapons = new List<string>();
- _weapons.Add("Пистолет");
- _weapons.Add("Автомат");
- _weapons.Add("Пулемет");
- _weapons.Add("Гранатомет");
- }
- private string GetRandomValue(List<string> values)
- {
- int randomId = UserUtils.GenerateRandomValue(values.Count);
- return values[randomId];
- }
- }
- class Person
- {
- public Person(string name, string surname, string weapon, string rank, int term)
- {
- Name = name;
- Surname = surname;
- Weapon = weapon;
- Rank = rank;
- Term = term;
- }
- public string Name { get; private set; }
- public string Surname { get; private set; }
- public string Weapon { get; private set; }
- public string Rank { get; private set; }
- public int Term { get; private set; }
- }
- static class UserUtils
- {
- private static Random s_random = new Random();
- public static int GenerateRandomValue(int maxValue)
- {
- return s_random.Next(maxValue);
- }
- public static int GenerateRandomValue(int minValue, int maxValue)
- {
- return s_random.Next(minValue, maxValue);
- }
- public static double GenerateRandomDouble()
- {
- return s_random.NextDouble();
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement