Middle+
Je potrebné zobraziť zoznam zamestnancov, ktorí dostávajú maximálnu mzdu vo svojom oddelení.
sobes.tech AI
Odpoveď od AI
Ak chcete zobraziť zoznam zamestnancov, ktorí dostávajú maximálnu mzdu vo svojom oddelení, môžete použiť LINQ s skupinovaním podľa oddelení a výberom zamestnancov s najvyššou mzdou v každej skupine.
Príklad v 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} z oddelenia {emp.Department} s platou {emp.Salary}");
}
Tento kód skupinuje zamestnancov podľa oddelení, nájde maximálnu mzdu v každej skupine a vyberie všetkých zamestnancov s touto mzdou.