00-C#算法_实现IComparer接口(自定义类排序,比较大小)

本文介绍了一个使用C#实现的学生信息管理程序,通过创建Student类存储学生姓名、年龄和金钱信息,并利用List和自定义比较器进行年龄和金钱排序。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

 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;
        }
    }

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值