首页 > 后端开发 > C#.Net教程 > 如何使用 C# 中的比较委托对复杂类型列表进行排序?

如何使用 C# 中的比较委托对复杂类型列表进行排序?

WBOY
发布: 2023-08-28 08:05:02
转载
1010 人浏览过

如何使用 C# 中的比较委托对复杂类型列表进行排序?

List 类中 Sort() 方法的重载需要 Comparison 委托 作为参数传递。

public void Sort(Comparison Comparison)

CompareTo 返回一个整数,指示此实例的值是否小于比、等于或大于指定对象或其他 Int16 实例的值。

C# 中的 Int16.CompareTo() 方法用于将此实例与指定的实例进行比较 对象或另一个 Int16 实例

示例

class Program{
   public static void Main(){
      Employee Employee1 = new Employee(){
         ID = 101,
         Name = "Mark",
         Salary = 4000
      };
      Employee Employee2 = new Employee(){
         ID = 103,
         Name = "John",
         Salary = 7000
      };
      Employee Employee3 = new Employee(){
         ID = 102,
         Name = "Ken",
         Salary = 5500
      };
      List<Employee> listEmployees = new List<Employee>();
      listEmployees.Add(Employee1);
      listEmployees.Add(Employee2);
      listEmployees.Add(Employee3);
      Console.WriteLine("Employees before sorting");
      foreach (Employee Employee in listEmployees){
         Console.WriteLine(Employee.ID);
      }
      listEmployees.Sort((x, y) => x.ID.CompareTo(y.ID));
      Console.WriteLine("Employees after sorting by ID");
      foreach (Employee Employee in listEmployees){
         Console.WriteLine(Employee.ID);
      }
      listEmployees.Reverse();
      Console.WriteLine("Employees in descending order of ID");
      foreach (Employee Employee in listEmployees){
         Console.WriteLine(Employee.ID);
      }
   }
   // Approach 1 - Step 1
   // Method that contains the logic to compare Employees
   private static int CompareEmployees(Employee c1, Employee c2){
      return c1.ID.CompareTo(c2.ID);
   }
}
public class Employee{
   public int ID { get; set; }
   public string Name { get; set; }
   public int Salary { get; set; }
}
登录后复制

输出

Employees before sorting
101
103
102
Employees after sorting by ID
101
102
103
Employees in descending order of ID
103
102
101
登录后复制

以上是如何使用 C# 中的比较委托对复杂类型列表进行排序?的详细内容。更多信息请关注PHP中文网其他相关文章!

来源:tutorialspoint.com
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板