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}");
}
Αυτός ο κώδικας ομαδοποιεί τους εργαζόμενους κατά τμήματα, βρίσκει το μέγιστο μισθό σε κάθε ομάδα και επιλέγει όλους τους εργαζόμενους με αυτό το μισθό.