Высокоуровневые методы информатики и программирования. Тузовский А.Ф. - 112 стр.

UptoLike

Составители: 

112
public class Person {
string firstName, lastName;
public Person(string _firstName, string _lastName)
{ firstName = _firstName; lastName = _lastName; }
override public string ToString()
{ return firstName + " " + lastName; }
}
Можно использовать в обобщенном классе SortedList<T,U>
пользовательский тип, точно так же, как если бы использовался тип
int, как показано ниже:
SortedList<string, Person> sl =
new SortedList<string,Person>();
sl.Add("Первый", new Person("Григорий", "Дубина"));
sl.Add("Второй", new Person("Володя", "Ходырев"));
sl.Add("Третий", new Person("Александр", "Луценко"));
foreach (Person p in sl.Values)
Console.Write(p.ToString() + ";");
Результат работы примера:
Володя Ходырев;Григорий Дубина;Александр Луценко
7.4.2. Обобщенные коллекции Queue<T> и Stack<T>
Аналогично следующий пример показывает использование обоб-
щенных версий Queue и Stack с классом Person:
Queue<Person> q = new Queue<Person>();
q.Enqueue(new Person("Mark", "Hanson"));
q.Enqueue(new Person("Kim", "Akers"));
q.Enqueue(new Person("Zsolt", "Ambrus"));
Console.WriteLine("Queue demonstration:");
for (int i = 1; i <= 3; i++)
Console.WriteLine(q.Dequeue().ToString());
Stack<Person> s = new Stack<Person>();
s.Push(new Person("Mark", "Hanson"));
s.Push(new Person("Kim", "Akers"));
s.Push(new Person("Zsolt", "Ambrus"));
Console.WriteLine("Stack demonstration:");
for (int i = 1; i <= 3; i++)
Console.WriteLine(s.Pop().ToString());
7.4.3. Обобщенная коллекция List<T>
Некоторые методы обобщенных коллекций могут потребовать
реализацию специфических интерфейсов в описании пользовательского
типа. Например, вызов метода List.Sort() требует, чтобы в пользо-
вательском классе был реализован интерфейс IComparable. Показан-
ный ниже пример расширяет описание класса Person, чтобы он под-