雇员类
class Employee
{
public string Name { get; private set; } // 名字
public int Salary { get; private set; } // 薪水
public Employee(string name,int salary)
{
this.Name = name;
this.Salary = salary;
}
/// <summary>
/// 按员工的薪资高低排序
/// e1大于e2返回true,否则返回false
/// </summary>
/// <param name="e1"></param>
/// <param name="e2"></param>
/// <returns></returns>
public static bool Compare(Employee e1,Employee e2)
{
if (e1.Salary > e2.Salary)
return true;
return false;
}
public override string ToString()
{
return "姓名:"+ Name +" 工资:"+Salary;
}
}
冒泡通用排序方法
/// <summary>
/// 冒泡通用比较
/// </summary>
/// <typeparam name="T">比较的类型</typeparam>
/// <param name="sortArray">比较类型的数组或集合</param>
/// <param name="commonMethod">委托方法</param>
public static void CommonSort<T>(T[] sortArray,Func<T,T,bool> commonMethod)
{
for (int i = 0; i < sortArray.Length; i++)
{
for (int k = 0; k < sortArray.Length - 1 - i; k++)
{
if (commonMethod(sortArray[k],sortArray[k+1]))
{
T temp = sortArray[k];
sortArray[k] = sortArray[k+1];
sortArray[k+1] = temp;
}
}
}
}
static void Main(string[] args)
{
Employee[] employee =
{
new Employee("a",1000),
new Employee("b",1200),
new Employee("c",1500),
new Employee("d",1600),
new Employee("e",1800),
new Employee("f",1100),
};
CommonSort<Employee>(employee,Employee.Compare);
foreach (Employee item in employee)
{
Console.WriteLine(item.ToString());
}
Console.ReadKey();
}