Основы программирования на C#


Список с возможностью поиска элементов по ключу - часть 3


Давайте рассмотрим теперь тестирующую процедуру - клиента нашего списка, демонстрирующую работу со списками, в которых элементы и ключи имеют разные типы:

public void TestConstraint() { OneLinkList<int, string> list1 = new OneLinkList <int, string>(); list1.add(33, "thirty three"); list1.add(22, "twenty two"); if(list1.findstart(33)) Console.WriteLine ("33 - найдено!"); else Console.WriteLine("33 - не найдено!"); if (list1.findstart(22)) Console.WriteLine ("22 - найдено!"); else Console.WriteLine("22 - не найдено!"); if (list1.findstart(44)) Console.WriteLine ("44 - найдено!"); else Console.WriteLine("44 - не найдено!"); Person pers1 = new Person("Савлов", 25, 1500); Person pers2 = new Person("Павлов", 35, 2100); OneLinkList<string, Person> list2 = new OneLinkList < string, Person>(); list2.add("Савл", pers1); list2.add( "Павел", pers2); if (list2.findstart("Павел")) Console.WriteLine ("Павел - найдено!"); else Console.WriteLine("Павел - не найдено!"); if (list2.findstart("Савл")) Console.WriteLine ("Савл - найдено!"); else Console.WriteLine("Савл - не найдено!"); if (list2.findstart("Иоанн")) Console.WriteLine ("Иоанн - найдено!"); else Console.WriteLine("Иоанн - не найдено!"); Person pers3 = new Person("Иванов", 33, 3000); list2.add("Иоанн", pers3); list2.start(); Person pers = list2.Item(); pers.PrintPerson(); list2.findstart("Иоанн"); pers = list2.Item(); pers.PrintPerson(); }

Поиск в списке с ограниченной универсальностью

Рис. 22.5.  Поиск в списке с ограниченной универсальностью

Обратите внимание на строки, где создаются два списка:

OneLinkList<int, string> list1 = new OneLinkList<int, string>(); OneLinkList<string, Person> list2 = new OneLinkList< string, Person>();

У списка list1 ключи имеют тип int, у списка list2 - string. Заметьте, оба фактических типа, согласно обязательствам, реализуют интерфейс IComparable. У первого списка тип элементов - string, у второго - Person. Все работает прекрасно. Вот результаты вычислений по этой процедуре:




Начало  Назад  Вперед