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;
return false;
}
public override string ToString()
{
//return base.ToString();
return Name + ":" + Salary;
}
}
class Program
{
static void CommonSort<T>(T[] sortArray,Func<T,T,bool> compareMethod)
{
bool swapped = true;
do
{
swapped = false;
for (int i = 0; i < sortArray.Length - 1; i++)
{
if (compareMethod(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[] employees = new Employee[]
{
new Employee("zs", 3500),
new Employee("ls", 3200),
new Employee("ww", 3800),
new Employee("zl", 3100),
new Employee("wmz", 3300),
new Employee("hk", 4500),
new Employee("chy", 2500)
};
CommonSort<Employee>(employees,Employee.Compare);
foreach (var temp in employees)
{
Console.WriteLine(temp.ToString());
}
Console.ReadKey();
}
}