Wednesday, December 26, 2012

Linq GroupBy with Aggregate functions

 List<Employee> empList = new List<Employee>();  
       empList.AddRange(new Employee[]   
       {   
         new Employee {EmpId =1, DeptId=1, Position="Director", Salary=100 },  
         new Employee {EmpId =2, DeptId=1, Position="Director", Salary = 120},  
         new Employee {EmpId =3, DeptId=1, Position="Software Engineer", Salary=50 },  
         new Employee {EmpId =4, DeptId=2, Position="Director", Salary=90 },  
         new Employee {EmpId =5, DeptId=2, Position="Director", Salary=100 },  
         new Employee {EmpId =6, DeptId=3, Position="HR Assistant", Salary=40 },  
         new Employee {EmpId =7, DeptId=3, Position="HR Manager", Salary=70},  
         new Employee {EmpId =8, DeptId=4, Position="IT Manager", Salary=85 },  
         new Employee {EmpId =8, DeptId=4, Position="IT Assistant", Salary=40 }  
       });  
   
       /*  
        * The highest salary from the each dept per position  
       */  
       empList.GroupBy(_ => new { _.DeptId, _.Position })  
         .Select(_ => new  
         {  
           MaximumSalary = _.Max(deptPositionGroup => deptPositionGroup.Salary),  
           DepartmentId = _.Key.DeptId,  
           Position = _.Key.Position  
         }).ToList()  
         .ForEach(selectedRecords =>  
         {  
           Console.WriteLine("{0} {1} {2}", selectedRecords.DepartmentId, selectedRecords.Position, selectedRecords.MaximumSalary);  
         });  
   
       /*Average salary from each dept per position */  
   
       Console.WriteLine();  
       Console.WriteLine();  
       Console.WriteLine();  
       empList.GroupBy(_ => new { _.DeptId, _.Position })  
               .Select(_ => new  
               {  
                 AverageSalary = _.Average(deptPositionGroup => deptPositionGroup.Salary),  
                 DepartmentId = _.Key.DeptId,  
                 Position = _.Key.Position  
               }).ToList()  
               .ForEach(selectedRecords =>  
               {  
                 Console.WriteLine("{0} {1} {2}", selectedRecords.DepartmentId, selectedRecords.Position, selectedRecords.AverageSalary);  
               });  
       Console.WriteLine();  
       Console.WriteLine();  
       Console.WriteLine();  
       /*Average salary from each dept */  
       empList.GroupBy(_ => _.DeptId)  
               .Select(_ => new  
               {  
                 AverageSalary = _.Average(deptPositionGroup => deptPositionGroup.Salary),  
                 DepartmentId = _.Key,  
               }).ToList()  
               .ForEach(selectedRecords =>  
               {  
                 Console.WriteLine("{0} {1}", selectedRecords.DepartmentId, selectedRecords.AverageSalary);  
               });  

1 comment:

  1. dịch vụ rà soát sổ sách
    dịch vụ kế toán giá rẻ eco green city
    trung tâm kế toán tại hải phòng
    khoá học kế toán tổng hợp

    trung tâm kế toán tại long biên
    trung tâm kế toán tại hà đông
    dịch vụ báo cáo tài chính
    dịch vụ kế toán thuế chiến!" Bội kì hôm nay thay thế vị trí của Khai La, tiếp nhận vị trí
    Cuồng ngưu Sư đoàn trưởng,

    "Thiếu gia, Lang kị chúng ta cũng xin Ngài được ra ứng chiến!"

    "Thiếu gia, chúng ta ..."

    Đoạn Vân trợn tròn mắt: hắn không ngờ tất cả đều là một lũ cuồng chiến
    tranh! Mọi người khác nghe đến chiến tranh đều e sợ né tránh vậy mà bọn
    hắn đều muốn đi trước tiên!

    Đoạn Vân phẩy tay ra hiệu giữ trật tự, đi đến bản đồ trong Hội nghị thất
    nói: " Ta không thể phái toàn bộ các ngươi ra ngoài, dù sao trong nhà
    cũng cần phải có bộ đội trấn giữ! Trước tiên ta giới thiệu một chút tình
    huống lần này! Đầu tiên có mười vạn Man Tộc ở phía Tây của Bố Lôi Tây
    Cao Nguyên, có một người là Mã Tề, một Thiên Long biên quan áp cảnh, các
    ngươi hãy xem bản đồ này, cũng tại nơi này còn có Tạp Tu Tư, Lôi Ngạo và
    còn có thêm Thiên Long ba nước cũng đóng lại biên giới, chỗ này gọi là
    Lạc Nhật Hạp Cốc, tổng cộng có năm mươi vạn Lôi Ngạo quân đội và hai
    mươi vạn quân của Tạp Tu Tư! Hơn nữa, còn có mười cửu cấp Cự long bố trí
    tại chỗ này!"


    eco green city
    goldmark city hồ tùng mậu

    chung cư 89 phùng hưng
    tiếng anh giao tiếp cho trẻ em

    ReplyDelete