Home »
.Net »
C# Programs
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 »