Sobes.tech
Middle+

Reikia išvardyti darbuotojus, gaunančius didžiausią atlyginimą savo skyriuje.

sobes.tech AI

Atsakymas iš AI

Norėdami išvesti darbuotojų sąrašą, kurie gauna didžiausią atlyginimą savo skyriuje, galite naudoti LINQ su grupavimu pagal skyrius ir darbuotojų pasirinkimu su didžiausiu atlyginimu kiekvienoje grupėje.

Pavyzdys 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} skyriaus, atlyginimas {emp.Salary}");
}

Šis kodas grupuoja darbuotojus pagal skyrius, randa didžiausią atlyginimą kiekvienoje grupėje ir išrenka visus darbuotojus su šiuo atlyginimu.