使用LINQ对员工列表进行排序,基于薪资和部门为ABC的员工


在C#中,LINQ(语言集成查询)是一个强大的工具,使您能够轻松地排序、筛选和操作数据。在本文中,我们将演示如何使用LINQ根据员工的薪资和部门对员工列表进行排序。

使用LINQ根据薪资和部门对员工列表进行排序

要使用LINQ根据员工的薪资和部门对员工列表进行排序,您可以按照以下步骤操作:

1. 创建一个类来表示员工

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

2. 创建一个员工列表

List<employee> employees = new List {
   new Employee { Name = "John", Salary = 50000, Department = "ABC" },
   new Employee { Name = "Mary", Salary = 60000, Department = "DEF" },
   new Employee { Name = "Bob", Salary = 40000, Department = "ABC" },
   new Employee { Name = "Alice", Salary = 70000, Department = "XYZ" }
};

3. 使用LINQ根据薪资和部门对员工列表进行排序

var sortedEmployees = employees
   .Where(e => e.Department == "ABC")
   .OrderByDescending(e => e.Salary)
   .ThenBy(e => e.Name);

4. 遍历排序后的列表并打印每个员工的姓名和薪资

foreach (var employee in sortedEmployees) {
   Console.WriteLine($"{employee.Name}: {employee.Salary}");
}

说明

步骤1 - 我们定义了一个名为Employee的类来表示员工。该类具有三个属性:姓名、薪资和部门。

步骤2 - 我们创建了一个员工列表,并用一些示例数据对其进行初始化。

步骤3 - 我们使用LINQ根据员工的薪资和部门对员工列表进行排序。我们首先筛选列表,只包含部门为“ABC”的员工。然后,我们根据员工的薪资按降序对筛选后的列表进行排序,然后根据姓名按升序排序。结果是一个排序后的员工列表,满足筛选条件。

步骤4 - 我们遍历排序后的员工列表,并使用字符串插值打印每个员工的姓名和薪资。

示例

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 = "ABC" },
         new Employee { Name = "Alice", Salary = 70000, Department = "XYZ" }
      };
   
      var sortedEmployees = employees
         .Where(e => e.Department == "ABC")
         .OrderByDescending(e => e.Salary)
         .ThenBy(e => e.Name);
   
      foreach (var employee in sortedEmployees) {
         Console.WriteLine($"{employee.Name}: {employee.Salary}");
      }
   }
}

输出

John: 50000
Bob: 40000

结论

使用LINQ根据员工的薪资和部门对员工列表进行排序是在C#中操作数据的一种简单有效的方法。通过使用LINQ,您可以轻松地筛选、排序和操作大量数据,只需几行代码即可。希望本文能帮助您了解如何使用LINQ根据薪资和部门对员工列表进行排序。

更新于:2023年5月4日

687 次浏览

开启你的职业生涯

完成课程获得认证

立即开始
广告