Sobes.tech
Middle+

È necessario elencare i dipendenti che ricevono la retribuzione massima nel loro dipartimento.

sobes.tech AI

Risposta dell'AI

Per ottenere un elenco di dipendenti che ricevono lo stipendio massimo nel loro dipartimento, si può usare LINQ con raggruppamento per dipartamento e selezione dei dipendenti con lo stipendio più alto in ogni gruppo.

Esempio in 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} dal dipartimento {emp.Department} con stipendio {emp.Salary}");
}

Questo codice raggruppa i dipendenti per dipartamento, trova lo stipendio massimo in ogni gruppo e seleziona tutti i dipendenti con questo stipendio.