namespace LINQ_03 { internal class Program { static void Main(string[] args) { Hospital hospital = new Hospital(); Menu menu = new Menu(hospital); menu.Run(); } } public class Patient { public Patient(string lastName, string firstName, string parentName, int age, string disease) { LastName = lastName; FirstName = firstName; Patronymic = parentName; Age = age; Disease = disease; } public string LastName { get; } public string FirstName { get; } public string Patronymic { get; } public int Age { get; } public string Disease { get; } public override string ToString() { return $"ФИО: {LastName} {FirstName} {Patronymic}, Возраст: {Age}, Заболевание: {Disease}"; } } public class Hospital { private List _patients = new List() { new Patient("Иванов", "Сергей", "Александрович", 35, "Грипп"), new Patient("Смирнова", "Елена", "Викторовна", 28, "Острый бронхит"), new Patient("Кузнецов", "Дмитрий", "Игоревич", 52, "Простуда"), new Patient("Попова", "Анна", "Сергеевна", 19, "Ветряная оспа"), new Patient("Васильев", "Андрей", "Олегович", 67, "Хроническая сердечная недостаточность"), new Patient("Соколова", "Татьяна", "Николаевна", 45, "Мигрень"), new Patient("Михайлов", "Илья", "Петрович", 12, "Аллергический ринит"), new Patient("Новикова", "Ольга", "Геннадьевна", 31, "Простуда"), new Patient("Федоров", "Максим", "Владимирович", 74, "Сахарный диабет 2 типа"), new Patient("Морозова", "Юлия", "Павловна", 22, "Грипп"), new Patient("Волков", "Алексей", "Евгеньевич", 49, "Остеохондроз поясничного отдела"), new Patient("Лебедева", "Наталья", "Дмитриевна", 38, "Анемия"), new Patient("Козлов", "Роман", "Аркадьевич", 60, "Пневмония"), new Patient("Семенова", "Ксения", "Борисовна", 25, "Перелом лучевой кости"), new Patient("Егоров", "Виктор", "Кириллович", 55, "Грипп"), new Patient("Павлова", "Светлана", "Ивановна", 41, "Хронический тонзиллит"), new Patient("Тихонов", "Георгий", "Фёдорович", 8, "Корь"), new Patient("Герасимова", "Вера", "Андреевна", 33, "Простуда"), new Patient("Зайцев", "Никита", "Михайлович", 29, "Растяжение связок голеностопа"), new Patient("Фролова", "Марина", "Валентиновна", 58, "Простуда") }; public void ShowPatient() { foreach (var patient in _patients) { Console.WriteLine(patient); } } public void SortByFullName() { _patients = _patients.OrderBy(patient => patient.LastName) .ThenBy(patient => patient.FirstName) .ThenBy(patient => patient.Patronymic) .ToList(); } public void SortByAge() { _patients = _patients.OrderBy(patients => patients.Age).ToList(); } public void ShowDisease(string disease) { var filteredPatients = _patients.Where(patients => string.Equals(patients.Disease, disease, StringComparison.OrdinalIgnoreCase)).ToList(); foreach (var patient in filteredPatients) { Console.WriteLine(patient); } } } public class Menu { private Hospital _hospital; public Menu(Hospital hospital) { _hospital = hospital; } public void Run() { const string ShowAllPatientsCommand = "0"; const string SortByFullNameCommand = "1"; const string SortByAgeCommand = "2"; const string ShowDiseaseCommand = "3"; const string ExitCommand = "4"; bool isWorking = true; while (isWorking) { Console.Clear(); Console.WriteLine(">>> СИСТЕМА УПРАВЛЕНИЯ БОЛЬНИЦЕЙ <<<"); Console.WriteLine($"{ShowAllPatientsCommand}. Показать всех пациентов"); Console.WriteLine($"{SortByFullNameCommand}. Сортировать пациентов по ФИО"); Console.WriteLine($"{SortByAgeCommand}. Сортировать пациентов по возрасту"); Console.WriteLine($"{ShowDiseaseCommand}. Найти пациентов по заболеванию"); Console.WriteLine($"{ExitCommand}. Выход"); Console.Write("\nВаш выбор: "); string userInput = Console.ReadLine(); switch (userInput) { case ShowAllPatientsCommand: _hospital.ShowPatient(); break; case SortByFullNameCommand: _hospital.SortByFullName(); _hospital.ShowPatient(); break; case SortByAgeCommand: _hospital.SortByAge(); _hospital.ShowPatient(); break; case ShowDiseaseCommand: HandleDiseaseSearch(); break; case ExitCommand: isWorking = false; Console.WriteLine("Работа завершена."); break; default: Console.WriteLine("Нет такой команды."); break; } if (isWorking) { Console.WriteLine("\nНажмите любую кнопку..."); Console.ReadKey(); } } } private void HandleDiseaseSearch() { Console.Write("Введите заболевание: "); string disease = Console.ReadLine(); _hospital.ShowDisease(disease); } } }