C# - Print employees whose salary is greater than average salaries using LINQ

Learn, how to print the employees whose salary is greater than the average of all employees salaries using LINQ in C#? By Nidhi Last updated : April 01, 2023

Here we will create an Employee class that contains data members ID, Name, Age, and Salary. Here we created List collection for employees and search only those employees whose salary is greater than the average of all employees using let statement of LINQ and print them on the console screen.

C# program to print the employees whose salary is greater than the average of all employees salaries using LINQ

The source code to print employees whose salary is greater than average salary using LINQ in C# is given below. The given program is compiled and executed successfully on Microsoft Visual Studio.

//Program to print the employees whose salary is 
//greater than average salary using LINQ in C#.

using System;
using System.Collections.Generic;
using System.Linq;

public class Employee {
  int ID;
  string Name;
  int Age;
  int Salary;

  public override string ToString() {
    return ID + " " + Name + " " + Age + " " + Salary;
  }

  static void Main(string[] args) {
    List < Employee > employees = new List < Employee > () {
      new Employee {ID = 101, Name = "Sumit", Age = 23, Salary = 4000},
      new Employee {ID = 102, Name = "Kiran", Age = 24, Salary = 6000},
      new Employee {ID = 103, Name = "Suman", Age = 25, Salary = 7000},
      new Employee {ID = 104, Name = "Raman", Age = 26, Salary = 9000},
    };

    IEnumerable < Employee > Query =
      from emp in employees
    let totSal = employees.Sum(sal => sal.Salary)
    let avgSal = totSal / 4
    where emp.Salary > avgSal
    select emp;

    Console.WriteLine("ID  Name  Age Salary");
    Console.WriteLine("=====================");
    foreach(Employee s in Query) {
      Console.WriteLine(s.ToString());
    }
    Console.WriteLine("=====================");
  }
}

Output

ID  Name  Age Salary
=====================
103 Suman 25 7000
104 Raman 26 9000
=====================
Press any key to continue . . .

Explanation

In the above program, we created an Employee class that contains data members ID, Name, Age, and Salary. Here we override the ToString() method to return Employee information. The Employee class also one more method is known as Main().

List<Employee> employees = new List<Employee>()
{
    new Employee {ID=101,   Name="Sumit"    ,Age=23, Salary=4000},
    new Employee {ID=102,   Name="Kiran"    ,Age=24, Salary=6000},
    new Employee {ID=103,   Name="Suman"    ,Age=25, Salary=7000},
    new Employee {ID=104,   Name="Raman"    ,Age=26, Salary=9000},
};

In the Main() method, we created List collection for Employees, It contains information of 4  employees.

IEnumerable<Employee> Query =
    from emp in employees
    let totSal=employees.Sum(sal=>sal.Salary)
    let avgSal = totSal/4
    where emp.Salary > avgSal
    select emp;

In the above code, we created a query to get a list of employees whose salary is greater than the average of all employee's salaries using let statements of LINQ. Then we printed the Employee detail using the "foreach" loop on the console screen.

C# LINQ Programs »




Comments and Discussions!

Load comments ↻





Copyright © 2024 www.includehelp.com. All rights reserved.