class Program
{
static void CommonSort<T>(T[]sortArray ,Func<T,T,bool> employeeCompare)
{
bool swapped = true;
do
{
swapped = false;
for (int i = 0; i < sortArray.Length - 1; i++)
{
if (employeeCompare(sortArray[i],sortArray[i+1]))
{
T temp = sortArray[i];
sortArray[i] = sortArray[i + 1];
sortArray[i + 1] = temp;
swapped = true;
}
}
} while (swapped);
}
static void Main(string[] args)
{
Employee [] a = new Employee[]
{
new Employee("zhangsan",2000),
new Employee("lisi",2020),
new Employee("wangwu",6600),
new Employee("liuliu",5000),
};
CommonSort(a,Employee.Compare);
foreach (var temp in a)
{
Console.WriteLine(temp.ToString());
}
}
}
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;
}
public static bool Compare(Employee e1,Employee e2)
{
if (e1.Salary > e2.Salary)
{
return true;
}
else
{
return false;
}
}
public override string ToString()
{
return Name + " " + Salary;
}
}