Sobes.tech
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}");
}

ეს კოდი ჯგუფავს თანამშრომლებს განყოფილებებით, finds მაქსიმალურ ხელფასს თითოეულ ჯგუფში და ირჩევს ყველა თანამშრომელს ამ ხელფასით.