Sobes.tech
Middle+

Өз бөлүмүндө эң жогорку маяна алган кызматкерлердин тизмесин чыгарыңыз.

sobes.tech AI

AIден жооп

Өз бөлімүндө эң жогорку маяна алган кызматкерлердин тизмесин чыгарыш үчүн, LINQ колдонуп, бөлүмдөр боюнча топтоо жана ар бир топто эң жогорку маяна алган кызматкерлерди тандоо мүмкүн.

C# мисалы:

class Employee
{
    public int Id { get; set; }
    public string Name { get; set; }
    public string Department { get; set; }
    public decimal Salary { get; set; }
}

var employees = new List<Employee>
{
    new Employee { Id = 1, Name = "Ivan", Department = "IT", Salary = 100000 },
    new Employee { Id = 2, Name = "Maria", Department = "IT", Salary = 120000 },
    new Employee { Id = 3, Name = "Peter", Department = "HR", Salary = 90000 },
    new Employee { Id = 4, Name = "Olga", Department = "HR", Salary = 90000 },
};

var topEarners = employees
    .GroupBy(e => e.Department)
    .SelectMany(g => 
    {
        var maxSalary = g.Max(e => e.Salary);
        return g.Where(e => e.Salary == maxSalary);
    });

foreach (var emp in topEarners)
{
    Console.WriteLine($"{emp.Name} {emp.Department} бөлүмүнөн, маянасы {emp.Salary}");
}

Бул код кызматкерлерди бөлүмдөр боюнча топтойт, ар бир топто эң жогорку маянаны табат жана ошол маянага ээ бардык кызматкерлерди тандоого мүмкүндүк берет.