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();