Sobes.tech
Middle+

Departmandaki en yüksek maaşı alan çalışanların listesini göstermek gerekiyor.

sobes.tech yapay zeka

AI'dan gelen yanıt

Bir departmandaki en yüksek maaşı alan çalışanların listesini çıkarmak için, departmanlara göre gruplayıp her gruptaki en yüksek maaşı alan çalışanları seçmek için LINQ kullanılabilir.

C# örneği:

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} departman {emp.Department} ile maaşı {emp.Salary}");
}

Bu kod, çalışanları departmanlara göre gruplar, her gruptaki en yüksek maaşı bulur ve bu maaşı alan tüm çalışanları seçer.