W1thr

LINQ-3

Jun 10th, 2021 (edited)
99
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C# 4.21 KB | None | 0 0
  1. using System;
  2. using System.Collections.Generic;
  3. using System.Linq;
  4.  
  5. namespace Homework3
  6. {
  7.     class Program
  8.     {
  9.         static void Main(string[] args)
  10.         {
  11.             List<Patient> patients = new List<Patient>
  12.             {
  13.                 new Patient("a", 13, "депрессия"),
  14.                 new Patient("b", 27, "кашель"),
  15.                 new Patient("c", 54),
  16.                 new Patient("d", 30),
  17.                 new Patient("e", 22, "простуда"),
  18.                 new Patient("f", 67),
  19.                 new Patient("g", 73, "простуда"),
  20.                 new Patient("h", 18, "кашель"),
  21.                 new Patient("i", 22),
  22.                 new Patient("j", 15, "простуда"),
  23.                 new Patient("k", 47),
  24.             };
  25.  
  26.             bool isActive = true;
  27.             while (isActive)
  28.             {
  29.                 Console.WriteLine("1)Отсортировать всех больных по фио \n2)Отсортировать всех больных по возрасту \n3)Вывести больных с определенным заболеванием");
  30.  
  31.                 int pointNumber = GetPointNumber();
  32.  
  33.                 switch (pointNumber)
  34.                 {
  35.                     case -1:
  36.                         break;
  37.                     case 1:
  38.                         SortByInitials(patients);
  39.                         break;
  40.                     case 2:
  41.                         SortByAge(patients);
  42.                         break;
  43.                     case 3:
  44.                         FilterByIlness(patients);
  45.                         break;
  46.                     default:
  47.                         Console.WriteLine("Ошибка!");
  48.                         break;
  49.                 }
  50.  
  51.                 Console.ReadKey();
  52.                 Console.Clear();
  53.             }
  54.         }
  55.  
  56.         static void SortByInitials(List<Patient> patients)
  57.         {
  58.             var sortedList = patients.OrderBy(patient => patient.Initials).ToList();
  59.             ShowNewList(sortedList);
  60.         }
  61.  
  62.         static void SortByAge(List<Patient> patients)
  63.         {
  64.             var sortedList = patients.OrderBy(patient => patient.Age).ToList();
  65.             ShowNewList(sortedList);
  66.         }
  67.  
  68.         static void FilterByIlness(List<Patient> patients)
  69.         {
  70.             Console.Write("Введите заболевание:");
  71.             string userInput = Console.ReadLine();
  72.  
  73.             var filteredList = patients.Where(patient => patient.Ilness.ToLower() == userInput.ToLower()).ToList();
  74.             if (filteredList.Count > 0)
  75.                 ShowNewList(filteredList);
  76.             else
  77.                 Console.WriteLine("Людей с таким заболеванием нет!");
  78.         }
  79.  
  80.         static void ShowNewList(List<Patient> patients)
  81.         {
  82.             foreach (var patient in patients)
  83.             {
  84.                 patient.ShowInfo();
  85.             }
  86.         }
  87.  
  88.         static int GetPointNumber()
  89.         {
  90.             Console.Write("Номер команды:");
  91.             string userInput = Console.ReadLine();
  92.  
  93.             int numberOfActions = 3;
  94.             if (int.TryParse(userInput, out int result) == true)
  95.             {
  96.                 if (result > 0 && result <= numberOfActions)
  97.                 {
  98.                     return result;
  99.                 }
  100.                 else
  101.                 {
  102.                     Console.Write("Неверное число!\n");
  103.                     return -1;
  104.                 }
  105.             }
  106.             else
  107.             {
  108.                 Console.Write("Это не число!\n");
  109.                 return -1;
  110.             }
  111.         }
  112.     }
  113.  
  114.  
  115.     class Patient
  116.     {
  117.         public string Initials { get; private set; }
  118.         public string Ilness { get; private set; }
  119.         public int Age { get; private set; }
  120.  
  121.         public Patient(string initials, int age, string ilness = "неизвестная болезнь")
  122.         {
  123.             Initials = initials;
  124.             Ilness = ilness;
  125.             Age = age;
  126.         }
  127.  
  128.         public void ShowInfo()
  129.         {
  130.             Console.WriteLine($"{Initials} - {Ilness} - {Age}");
  131.         }
  132.     }
  133. }
  134.  
Add Comment
Please, Sign In to add comment