Необходимо реализовать вывод данных о пациентах по нескольким методам с помощью LINQ и LINQ запросы

Дан класс Patient.

class Patient
{
    public String Name;
    public String Surname;
    public int age;
    public String status;

    public Patient(string Name, string Surname, int age, string status)
    {
        this.Name = Name;
        this.Surname = Surname;
        this.age = age;
        this.status = status;
    }
}

Даны пациенты в виде объектов класса Patient. Я их сразу перевел в List для работы с LINQ.

class Program
{
    static void Main()
    {
        var patients = new List<Patient>()
        {
            new Patient ("Alex", "Mitchel", 21, "critical"),
            new Patient ("Kate", "Pupsvel", 18, "critical"),
            new Patient ("Georgy", "Robbinson", 42, "normal"),
            new Patient ("LG", "Company", 120, "normal"),
            new Patient ("Mikky", "Mouse", 30, "critical")
        };
    }
}

Необходимо реализовать вывод данных по 4 методам. Один из них LessThen(пользователь вводит число, а метод выводит всех пациентов младше этого числа:

class Methods
{
    static void LessThan()
    {
        Console.WriteLine("Enter age to sort in descending order from this number");
        int number = Int32.Parse(Console.ReadLine());

        var lessThen = from people in patients
                       where people.age < number
                       select people;
        foreach (var person in lessThen)
        {
            Console.WriteLine($"{person.Name} {person.Surname}");
        }
    }
}

Естественно в выражении "from people in patients" метод не видит List patients.

Как мне реализовать этот метод в Main, чтобы я мог вызывать его и он выполнял мои команды, которые я прописал с применением операторов LINQ в контексте этого метода?


Ответы (1 шт):

Автор решения: tym32167

Как пример

class Program
{
    static void Main()
    {
        var patients = new List<Patient>()
        {
            new Patient ("Alex", "Mitchel", 21, "critical"),
            new Patient ("Kate", "Pupsvel", 18, "critical"),
            new Patient ("Georgy", "Robbinson", 42, "normal"),
            new Patient ("LG", "Company", 120, "normal"),
            new Patient ("Mikky", "Mouse", 30, "critical")
        };
        
        Methods.LessThan(patients);
    }
}

class Methods
{
    public static void LessThan(List<Patient> patients)
    {
        Console.WriteLine("Enter age to sort in descending order from this number");
        int number = Int32.Parse(Console.ReadLine());

        var lessThen = from people in patients
                       where people.age < number
                       select people;
        foreach (var person in lessThen)
        {
            Console.WriteLine($"{person.Name} {person.Surname}");
        }
    }
}
→ Ссылка