class Program
{
static void Main(string[] args)
{
Student liu = new Student()
{
Name = "刘备",
Age = 50,
Money = 10
};
Student sun = new Student()
{
Name = "孙权",
Age = 40,
Money = 20
};
Student fei = new Student()
{
Name = "张飞",
Age = 44,
Money = 30
};
List<Student> students = new List<Student>();
students.Add(liu);
students.Add(sun);
students.Add(fei);
students.Sort(new AgeCompare()); //年龄排序
Console.WriteLine("按年龄排序:");
for (int i = 0; i < students.Count; i++)
{
Console.WriteLine("姓名:"+ students[i].Name + " _ "+students[i].Age +"岁");
}
Console.WriteLine("按金钱排序:");
students.Sort(new MoneyCompare());
for (int i = 0; i < students.Count; i++)
{
Console.WriteLine("姓名:" + students[i].Name + " _ " + students[i].Money + "元");
}
Console.ReadKey();
}
}
class Student
{
public string Name;
public int Age;
public int Money;
}
class AgeCompare : IComparer<Student>
{
public int Compare(Student x, Student y)
{
//使用string.CompareTo()
return x.Age.CompareTo(y.Age);
}
}
class MoneyCompare : IComparer<Student>
{
public int Compare(Student x, Student y)
{
//自定义比较方式
if (x.Money > y.Money)
return -1;
if (x.Money == y.Money)
{
return 0;
}
return 1;
}
}