C# Program to Sort a List of Employees Based on Salary using LINQ


In many software development projects, there comes a point where it becomes necessary to sort a list of objects based on one or more properties of the objects. In C#, the LINQ (Language Integrated Query) library provides a powerful and easy-to-use way to sort lists of objects based on one or more criteria. In this tutorial, we will demonstrate how to sort a list of Employee objects based on their salary using LINQ.

Steps

  • Create an Employee class with properties for Name, Salary, and Department.

  • Create a List of Employee objects and populate it with some data.

  • Use LINQ to sort the list of Employee objects based on their salary.

  • Display the sorted list of Employee objects.

Example

Here's the C# code for the example program that uses LINQ to sort a list of employees based on their salary −

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

public class Employee {
   public string Name { get; set; }
   public int Salary { get; set; }
   public string Department { get; set; }
}

class Program {
   static void Main(string[] args) {
      List<Employee> employees = new List<Employee> {
         new Employee { Name = "John", Salary = 50000, Department = "ABC" },
         new Employee { Name = "Mary", Salary = 60000, Department = "DEF" },
         new Employee { Name = "Bob", Salary = 40000, Department = "XYZ" },
         new Employee { Name = "Alice", Salary = 70000, Department = "XYZ" }
      };
   
      var sortedEmployees = employees
         .OrderByDescending(e => e.Salary);
   
      foreach (var employee in sortedEmployees) {
         Console.WriteLine($"{employee.Name}: {employee.Salary}");
      }
   }
}

Output

Alice: 70000
Mary: 60000
John: 50000
Bob: 40000

Explanation

In this program, we first create an Employee class with properties for Name, Salary, and Department. We then create a List of Employee objects and populate it with some sample data.

To sort the list of employees by salary, we use LINQ's OrderByDescending method. This method takes a lambda expression that specifies the property to sort by (in this case, the Salary property) and whether to sort in ascending or descending order (in this case, descending).

Finally, we loop through the sorted list of employees and display their names and salaries using Console.WriteLine().

Conclusion

In this tutorial, we've shown how to sort a list of Employee objects based on their salary using LINQ. Sorting a list of objects is a common task in software development, and LINQ provides a simple and elegant way to accomplish this. By using LINQ, you can easily sort lists based on multiple properties and criteria, making it a powerful tool for data manipulation.

Updated on: 04-May-2023

705 Views

Kickstart Your Career

Get certified by completing the course

Get Started
Advertisements