Sobes.tech
Middle+

Se requiere listar a los empleados que reciben el salario más alto en su departamento.

sobes.tech AI

Respuesta de la IA

Para obtener una lista de empleados que reciben el salario máximo en su departamento, se puede usar LINQ con agrupamiento por departamentos y selección de empleados con el salario más alto en cada grupo.

Ejemplo en 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} from {emp.Department} department with salary {emp.Salary}");
}

Este código agrupa a los empleados por departamentos, encuentra el salario máximo en cada grupo y selecciona a todos los empleados con ese salario.