zoukankan      html  css  js  c++  java
  • 通过实现类 的比较器 ,来实现类的排序

     
    class aa : IComparable<aa>
        {
            public int Name { get; set; }
            public int Age { get; set; }
            //重载操作符
            public static aa operator +(aa a1, aa a2)
            {
                a2.Name += a1.Name;
                return a2;
            }
            //继承IComparable类 实现CompareTo对比方法,即可实现类的排序功能
            public int CompareTo(aa obj)
            {
                if (Name > obj.Name)
                {
                    return 1;
                }
                else if (Name == obj.Name)
                {
                    return 0;
                }
                else
                {
                    return -1;
                }
            }
        }
        //自定义比较器,比较年龄
        class AgeComparer:IComparer<aa>
        {
            public int Compare(aa x,aa y)
            {
                return x.Age.CompareTo(y.Age);
            }
        }
    
    
    
    
    

    调用代码:

     var a3 = new aa() { Name = 30 };
                var a1 = new aa() { Name = 10 };
                var a2 = new aa() { Name = 20 };
                //var c = a1 + a2;
                List<aa> list = new List<aa>();
                list.Add(a1);
                list.Add(a2);
                list.Add(a3);
                //list.Add(c);
                list.Sort();
            //自定义比较器 比较年龄
                list.Sort(new AgeComparer());
    foreach (var item in list) { Console.WriteLine(item.Name); } Console.ReadKey();
  • 相关阅读:
    感想2
    感想1
    记录4
    记录3
    记录2
    记录1
    库存物资管理系统-测试
    开学测试
    大二下开学测试有感
    大二下周总结一
  • 原文地址:https://www.cnblogs.com/scyr/p/7306931.html
Copyright © 2011-2022 走看看