Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- using System;
- using System.Collections.Generic;
- using System.Linq;
- namespace linqFindCriminal
- {
- class Program
- {
- static void Main(string[] args)
- {
- const int CommandNewFind = 1;
- const int CommandFindByNationality = 2;
- const int CommandFindByWeight = 3;
- const int CommandFindByHeight = 4;
- const int CommandExit = 5;
- bool isRunning = true;
- Database database = new Database();
- Console.WriteLine($"{ CommandNewFind} - Новый поиск");
- Console.WriteLine($"{ CommandFindByNationality} - Искать по национальности");
- Console.WriteLine($"{ CommandFindByWeight} - Искать по весу");
- Console.WriteLine($"{ CommandFindByHeight} - Искать по росту");
- Console.WriteLine($"{ CommandExit} - Закрыть программу");
- while (isRunning)
- {
- Console.Write("\nВведите команду: ");
- int userInput = UserUtils.GetNumberFromUser();
- switch (userInput)
- {
- case CommandNewFind:
- database.ResetFindResult();
- break;
- case CommandFindByNationality:
- database.FindByNationality();
- break;
- case CommandFindByWeight:
- database.FindByWeight();
- break;
- case CommandFindByHeight:
- database.FindByHeight();
- break;
- case CommandExit:
- isRunning = false;
- break;
- }
- }
- }
- }
- class UserUtils
- {
- public static int GetNumberFromUser()
- {
- string userInput;
- int userNumber;
- bool isNumber = false;
- do
- {
- userInput = Console.ReadLine();
- isNumber = int.TryParse(userInput, out userNumber);
- }
- while (isNumber == false);
- return userNumber;
- }
- }
- class Criminal
- {
- public Criminal(string surname, string name, string patronymic, bool guarded, int height, int weight, string nationality)
- {
- Name = name;
- Surname = surname;
- Patronymic = patronymic;
- Guarded = guarded;
- Height = height;
- Weight = weight;
- Nationality = nationality;
- }
- public string Name { get; private set; }
- public string Surname { get; private set; }
- public string Patronymic { get; private set; }
- public bool Guarded { get; private set; }
- public int Height { get; private set; }
- public int Weight { get; private set; }
- public string Nationality { get; private set; }
- public void ShowInfo()
- {
- string guardedLabel = Guarded ? "да" : "нет";
- Console.WriteLine($"рост:{Height} вес:{Weight} национальность:{Nationality} {Name} {Surname} {Patronymic} Задержан:{guardedLabel}");
- }
- }
- class Database
- {
- private List<Criminal> _criminals = new List<Criminal>();
- private List<Criminal> _foundCriminals;
- public Database()
- {
- _criminals.Add(new Criminal("Иванов", "Иван", "Иванович", false, 160, 80, "Марсианин"));
- _criminals.Add(new Criminal("Петров", "Пётр", "Петрович", false, 163, 80, "Лунатик"));
- _criminals.Add(new Criminal("Сидоров", "Сидор", "Сидорович", true, 160, 70, "Марсианин"));
- _criminals.Add(new Criminal("Антонов", "Антон", "Антонович", false, 160, 80, "Лунатик"));
- _criminals.Add(new Criminal("Джигурда", "Валентин", "Исакевич", false, 163, 70, "Лунатик"));
- _criminals.Add(new Criminal("Кожедубов", "Артём", "Игоревич", false, 163, 80, "Землянин"));
- _criminals.Add(new Criminal("Натулько", "Алексей", "Петрович", false, 168, 70, "Марсианин"));
- _criminals.Add(new Criminal("Карбонный", "Антон", "Петрович", true, 163, 80, "Марсианин"));
- _criminals.Add(new Criminal("Филь", "Артём", "Александрович", false, 168, 99, "Землянин"));
- _criminals.Add(new Criminal("Попов", "Пётр", "Сидорович", false, 160, 99, "Марсианин"));
- _criminals.Add(new Criminal("Ларетти", "Антон", "Александрович", true, 163, 99, "Землянин"));
- _criminals.Add(new Criminal("Ковальски", "Иван", "Моисеевич", false, 168, 80, "Землянин"));
- ResetFindResult();
- }
- public void ResetFindResult()
- {
- _foundCriminals = _criminals;
- }
- public void FindByHeight()
- {
- Console.WriteLine("Введите рост");
- int height = UserUtils.GetNumberFromUser();
- _foundCriminals = _foundCriminals.Where(criminal => criminal.Height == height && criminal.Guarded == false).ToList<Criminal>();
- ShowFindResult();
- }
- public void FindByWeight()
- {
- Console.WriteLine("Введите вес");
- int weight = UserUtils.GetNumberFromUser();
- _foundCriminals = _foundCriminals.Where(criminal => criminal.Weight == weight && criminal.Guarded == false).ToList<Criminal>();
- ShowFindResult();
- }
- public void FindByNationality()
- {
- Console.WriteLine("Введите национальность");
- string nationality = Console.ReadLine();
- _foundCriminals = _foundCriminals.Where(criminal => criminal.Nationality == nationality && criminal.Guarded == false).ToList<Criminal>();
- ShowFindResult();
- }
- public void ShowFindResult()
- {
- Console.WriteLine("");
- foreach(var criminal in _foundCriminals)
- criminal.ShowInfo();
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement