Skip to content

Instantly share code, notes, and snippets.

@Hellhackee
Last active December 15, 2020 23:24
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save Hellhackee/84466689bc024dd432fedfea6d659465 to your computer and use it in GitHub Desktop.
Save Hellhackee/84466689bc024dd432fedfea6d659465 to your computer and use it in GitHub Desktop.
CS Light Lesson 41 (patients)
class Program
{
static void Main(string[] args)
{
bool isOpen = true;
string input;
string inputDisease;
Patient patient1 = new Patient("Олег", 18, "амнезия");
Patient patient2 = new Patient("Иван", 20, "перелом");
Patient patient3 = new Patient("Петр", 32, "раздвоение личности");
Patient patient4 = new Patient("Евгений", 12, "головные боли");
Patient patient5 = new Patient("Александр", 26, "аутизм");
Patient patient6 = new Patient("Алексей", 19, "менископатия");
Patient patient7 = new Patient("Степан", 23, "перелом");
Patient patient8 = new Patient("Андрей", 41, "простатит");
Patient patient9 = new Patient("Владимир", 38, "головные боли");
Patient patient10 = new Patient("Анатолий", 17, "амнезия");
List<Patient> patients = new List<Patient>() { patient1, patient2, patient3, patient4, patient5,
patient6, patient7, patient8, patient9, patient10};
var diseases = from Patient patient in patients
group patient.Disease by patient.Disease;
diseases.ToArray();
while (isOpen)
{
Console.WriteLine("Список больных: ");
foreach (var patient in patients)
{
patient.ShowInfo();
}
Console.WriteLine();
Console.WriteLine("Список доступных команд:");
Console.WriteLine(" 1 - Отсортировать всех больных по фио\n 2 - Отсортировать всех больных по возрасту" +
"\n 3 - Вывести больных с определенным заболеванием\n 4 - Выход");
input = Console.ReadLine();
switch (input)
{
case "1":
var sortedPatientsByName = patients.OrderBy(x => x.Name);
foreach (var patient in sortedPatientsByName)
{
patient.ShowInfo();
}
break;
case "2":
var sortedPatientsByAge = patients.OrderBy(x => x.Age);
foreach (var patient in sortedPatientsByAge)
{
patient.ShowInfo();
}
break;
case "3":
Console.WriteLine("Список болезней: ");
foreach (var disease in diseases)
{
Console.WriteLine(disease.Key);
}
Console.Write("Введите имя болезни: ");
inputDisease = Console.ReadLine().ToLower();
var filtredPatients = patients.Where(patient => patient.Disease == inputDisease);
Console.WriteLine("Список больных: ");
foreach (var patient in filtredPatients)
{
patient.ShowInfo();
}
break;
case "4":
isOpen = false;
break;
default:
Console.WriteLine("Извините, такой команды нет.");
break;
}
Console.ReadKey();
Console.Clear();
}
}
}
class Patient
{
public string Name { get; private set; }
public int Age { get; private set; }
public string Disease { get; private set; }
public Patient(string name, int age, string disease)
{
Name = name;
Age = age;
Disease = disease;
}
public void ShowInfo()
{
Console.WriteLine($"Пациент: {Name}, возраст {Age}, болезнь {Disease}");
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment