zoukankan      html  css  js  c++  java
  • Func<T>委托实现员工薪水冒泡排序

        /*1、首先创建一个冒泡排序类用于实现冒泡排序方法*/

     /// <summary>
        /// 冒泡排序类
        /// </summary>
        public class BubbleSorter {
            /// <summary>
            /// 定义静态排序泛型类
            /// </summary>
            /// <typeparam name="T"></typeparam>
            /// <param name="sortArray"></param>
            /// <param name="compare">带2个参数,返回bool型的排序方法</param>
            public static  void  Sort<T>(IList<T> sortArray , Func<T,T,bool>compare){
                for ( int i = 0; i < sortArray.Count-1 ; i++ ) {
                    if ( compare ( sortArray[i], sortArray[i + 1] ) ) {
                        T temp = sortArray[i];
                        sortArray[i] = sortArray[i + 1];
                        sortArray[i + 1] = temp;
                    }
                }
            }
        }

      /*2、再创建一个员工类,定义员工姓名和薪水属性,构造函数,重写ToString()以及供Func<T>使用的方法*/

     /// <summary>
        /// 员工类
        /// </summary>
        public class Employee {
            public Employee ( string name, decimal salary ) { this.Name = name; this.Salary = salary; }
            public string Name { get; set; }
            public decimal Salary { get; set; }
            /// <summary>
            /// 重写ToString()便于显示员工信息
            /// </summary>
            /// <returns></returns>
            public override string ToString ( ) {
                return string.Format("Name: {0}  Salary:{1}",Name ,Salary );
            }
            /// <summary>
            /// 排序方法(必须有,且为带2个参数,返回类型为bool型),供委托使用
            /// </summary>
            /// <param name="emp1"></param>
            /// <param name="emp2"></param>
            /// <returns></returns>
            public static bool CompareSalary (Employee emp1,Employee emp2 ) {
                return emp1.Salary < emp2.Salary;
            }
        }

        /*3、测试*/

     class Program {
            /// <summary>
            /// 客户端测试
            /// </summary>
            /// <param name="args"></param>
            static void Main ( string[ ] args ) {
                Employee[ ] employees = {
                                            new Employee("A",2000), 
                                            new Employee("B",4000),
                                            new Employee("C",3000),
                                            new Employee("D",2000),
                                            new Employee("E",1000)
                                        };
                BubbleSorter.Sort ( employees, Employee.CompareSalary );
                foreach ( var item in employees ) {
                    Console.WriteLine ( item.ToString ( ) );
                }
                Console.ReadKey ( );
            }
        }
  • 相关阅读:
    把自己电脑搭建为服务器(免费内网穿透心得)
    多态复习
    hadoop 第一个 mapreduce 程序(对MapReduce的几种固定代码的理解)
    Anaconda下的 Jupyter Notebook 安装 多python环境
    C++读写内存工具类X64 X86
    VS中MFC项目文件特别大的解决办法
    python记事本实现查询替换
    java格式化代码(java格式化代码工具类)
    Vue 之 slot(插槽)
    Vue全家桶之——Vuex
  • 原文地址:https://www.cnblogs.com/xiaoyu5062/p/2580747.html
Copyright © 2011-2022 走看看