Csharp/C Sharp by API/System/IComparable — различия между версиями
Admin (обсуждение | вклад) м (1 версия) |
|
(нет различий)
|
Версия 18:31, 26 мая 2010
implement IComparable
<source lang="csharp"> using System; using System.Collections; using System.Collections.Generic; using System.Text; class Person : IComparable {
public string Name; public int Age; public Person(string name, int age) { Name = name; Age = age; } public int CompareTo(object obj) { if (obj is Person) { Person otherPerson = obj as Person; return this.Age - otherPerson.Age; } else { throw new ArgumentException( "Object to compare to is not a Person object."); } }
} class Program {
static void Main(string[] args) { ArrayList list = new ArrayList(); list.Add(new Person("A", 30)); list.Add(new Person("B", 25)); list.Add(new Person("B", 27)); list.Add(new Person("E", 22)); for (int i = 0; i < list.Count; i++) { Console.WriteLine("{0} ({1})", (list[i] as Person).Name, (list[i] as Person).Age); } list.Sort(); for (int i = 0; i < list.Count; i++) { Console.WriteLine("{0} ({1})", (list[i] as Person).Name, (list[i] as Person).Age); } }
}
</source>