IComparable与数组排序
如果对数组使用自定义类,就必须实现ICommparable接口,这个接口只定义了一个CompareTo(),如果要比较的对象相等,该方法返回0,如果该实例应排在参数对象的前面,该方法就返回小于0的值,如果该实例应该排在参数对象的后面,该方法就返回大于0的值。
1 public class Person:IComparable<Person> 2 { 3 public int Number { get; set; } 4 public string Name { get; set; } 5 6 7 public int CompareTo(Person other) 8 { 9 if (other == null) return 1; 10 int result = this.Number.CompareTo(other.Number); 11 if (result == 0) 12 { 13 result = this.Name.CompareTo(other.Name); 14 } 15 return result; 16 17 } 18 } 19 static void Main(string[] args) 20 { 21 Person[] Persons = { new Person {Name="hujintao",Number=2 }, new Person {Name="wenjiabao",Number=1 }, new Person {Name="jiangzhemin",Number=3 } }; 22 Array.Sort(Persons); 23 foreach (Person item in Persons) 24 { 25 Console.WriteLine(item.Number); 26 } 27 28 int[] i = { 2, 1, 3 }; 29 Array.Sort(i); 30 foreach (int item in i) 31 { 32 Console.WriteLine(item); 33 } 34 Console.ReadKey(); 35 }
Android 成长之路

浙公网安备 33010602011771号