Читаем C# 4.0 полное руководство - 2011 полностью

Перечислитель типаIDictionaryEnumeratorиспользуется аналогично обычному перечислителю, за исключением того, что текущее значение в данном случае получается с помощью свойствEntry, KeyилиValue,а не свойстваCurrent.Следовательно, приобретя перечислитель типаIDictionaryEnumerator,необходимо вызвать методMoveNext, чтобы получить первый элемент коллекции. А для получения остальных ее элементов следует продолжить вызовы методаMoveNext . Этот метод возвращает логическое значениеfalse,когда в коллекции больше нет ни одного элемента.

В приведенном ниже примере программы элементы коллекции типаHashtableперечисляются с помощью перечислителя типаIDictionaryEnumerator.

// Продемонстрировать применение перечислителя типа IDictionaryEnumerator.

using System;

using System.Collections;

class IDicEnumDemo { static void Main {

// Создать хеш-таблицу.

Hashtable ht = new Hashtable;

// Добавить элементы в таблицу, ht.Add("Кен", "555-7756"); ht.Add("Мэри", "555-9876"); ht.Add("Том", "555-3456"); ht.Add("Тодд", "555-3452");

// Продемонстрировать применение перечислителя.

IDictionaryEnumerator etr = ht.GetEnumerator;

Console.WriteLine("Отобразить информацию с помощью свойства Entry."); while(etF.MoveNext)

Console.WriteLine(etr.Entry.Key + ": " + etr.Entry.Value);

Console.WriteLine;

Console.WriteLine("Отобразить информацию " +

"с помощью свойств Key и Value.");

etr .Reset ;

while(etr.MoveNext )

Console.WriteLine(etr.Key + ": " + etr.Value);

}

}

Ниже приведен результат выполнения этой программы.

Отобразить информацию с помощью свойства Entry.

Мэри: 555-9876 Том: 555-3456 Тодд: 555-3452 Кен: 555-7756

Отобразить информацию с помощью свойств Key и Value.

Мэри: 555-9876 Том: 555-3456 Тодд: 555-3452 Кен: 555-7756

Реализация интерфейсов IEnumerable и IEnumerator

Как упоминалось выше, для циклического обращения к элементам коллекции зачастую проще (да и лучше) организовать циклforeach,чем пользоваться непосредственно методами интерфейсаIEnumerator.Тем не менее ясное представление о принципе действия подобных интерфейсов важно иметь по еще одной причине: если требуется создать класс, содержащий объекты, перечисляемые в циклеforeach,то в этом классе следует реализовать интерфейсыIEnumeratorиIEnumerable.Иными словами, для того чтобы обратиться к объекту определяемого пользователем класса в циклеforeach,необходимо реализовать интерфейсыIEnumeratorиIEnumerableв их обобщенной или необобщенной форме. Правда, сделать это будет нетрудно, поскольку оба интерфейса не очень велики.

Перейти на страницу:

Похожие книги

Access 2002: Самоучитель
Access 2002: Самоучитель

В книге рассматривается широкий круг вопросов, связанных с использованием программной среды Access 2002, которая является составной частью пакета Office 2002 и предназначена для создания банка данных в самых различных предметных областях.Подробно описывается методика проектирования объектов базы данных (таблицы, формы, отчеты, страницы доступа к данным, запросы, модули).Детально обсуждаются вопросы создания интегрированной базы данных в единой среде Access 2002: формирование БД с нуля, конвертирование в программную среду баз данных, созданных в ином программном окружении – Clarion, FoxPro.Особое внимание уделяется формированию разнообразных запросов к интегрированной базе данных Access 2002 с использованием языков программирования SQL, VBA и макросов.Приводятся общие сведения о возможностях языка обмена данными между различными компьютерами и приложениями (XML). Описываются возможности использования гиперссылок, связывающих базу данных с другими программными продуктами. Объясняется, как можно работать с базой данных Access 2002 без установки ее на компьютер, используя технологию ODBC (Open Data Base Connectivity). В приложениях приводятся количественные параметры Access 2002 и связанная с этой СУБД терминология.Предлагаемая книга будет полезна специалистам, занимающимся практической разработкой банков данных и приложений на их основе, а также студентам вузов, изучающим информатику.

Павел Юрьевич Дубнов

Программирование, программы, базы данных / ОС и Сети / Книги по IT