Sobes.tech
Middle+

O'z bo'limida eng yuqori maosh oladigan xodimlar ro'yxatini chiqarish kerak.

sobes.tech AI

AIdan javob

Xodimlarning o'z bo'limida eng yuqori maosh oladiganlar ro'yxatini chiqarish uchun, LINQ yordamida bo'limlar bo'yicha guruhlash va har bir guruhda eng yuqori maoshga ega bo'lgan xodimlarni tanlash mumkin.

C# misoli:

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} bo'limidan, maoshi {emp.Salary}");
}

Ushbu kod xodimlarni bo'limlar bo'yicha guruhlaydi, har bir guruhda maksimal maoshni topadi va shu maoshga ega bo'lgan barcha xodimlarni tanlaydi.