C# 委托实现冒泡排序

委托实现员工根据工资升序排列

首先定义员工类

 1  class Employee
 2     {
 3         public string Name { get; private set; }
 4         public decimal Salary { get; private set; }
 5 
 6         public Employee(string name, decimal salary)
 7         {
 8             this.Name = name; this.Salary = salary;
 9         }
10 
11         public override string ToString()
12         {
13             return string.Format("{0},{1:C}",Name,Salary);
14         }
15         public static bool CompareSalary(Employee e1,Employee e2)
16         {
17             return e1.Salary < e2.Salary;
18         }
19     }

重写sort方法

 1  class BubbleSorter
 2     {
 3         public static void Sort<T>(IList<T> sortArray, Func<T, T, bool> comparison)
 4         {
 5             bool swapped = true;
 6             do
 7             {
 8                 swapped = false;
 9                 for (int i = 0; i < sortArray.Count - 1; i++)
10                 {
11                     if (comparison(sortArray[i + 1], sortArray[i]))
12                     {
13                         T temp = sortArray[i];
14                         sortArray[i] = sortArray[i + 1];
15                         sortArray[i + 1] = temp;
16                         swapped = true;
17                     }
18                 }
19             } while (swapped);
20 
21 
22         }
23     }

调用 方法实现排序

 1 Employee[] employees =
 2       {
 3         new Employee("Bugs Bunny", 20000),
 4         new Employee("Elmer Fudd", 10000),
 5         new Employee("Daffy Duck", 25000),
 6         new Employee("Wile Coyote", 1000000.38m),
 7         new Employee("Foghorn Leghorn", 23000),
 8         new Employee("RoadRunner", 50000)
 9       };
10 
11             BubbleSorter.Sort(employees, Employee.CompareSalary);
12 
13             foreach (var employee in employees)
14             {
15                 Console.WriteLine(employee);
16             }

 

转载于:https://www.cnblogs.com/farmer-y/p/5957131.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值