Основополагающим для всех коллекций является понятиеперечислителя,который поддерживается в необобщенных интерфейсахIEnumeratorиIEnumerable,а также в обобщенных интерфейсахIEnumeratorиIEnumerable.Перечислитель обеспечивает стандартный способ поочередного доступа к элементам коллекции. Следовательно, онперечисляетсодержимое коллекции. В каждой коллекции должна быть реализована обобщенная или необобщенная форма интерфейсаI Enumerable,поэтому элементы любого класса коллекции должны быть доступны посредством методов, определенных в интерфейсеIEnumeratorилиIEnumerator.Это означает, что, внеся минимальные изменения в код циклического обращения к коллекции одного типа, его можно использовать для аналогичного обращения к коллекции другого типа. Любопытно, что для поочередного обращения к содержимому коллекции в циклеforeachиспользуется перечислитель.
Основополагающим для всех коллекций является понятиеперечислителя,который поддерживается в необобщенных интерфейсахIEnumeratorиIEnumerable,а также в обобщенных интерфейсахIEnumeratorиIEnumerable.Перечислитель обеспечивает стандартный способ поочередного доступа к элементам коллекции. Следовательно, онперечисляетсодержимое коллекции. В каждой коллекции должна быть реализована обобщенная или необобщенная форма интерфейсаIEnumerable,поэтому элементы любого класса коллекции должны быть доступны посредством методов, определенных в интерфейсеIEnumeratorилиIEnumerator.Это означает, что, внеся минимальные изменения в код циклического обращения к коллекции одного типа, его можно использовать для аналогичного обращения к коллекции другого типа. Любопытно, что для поочередного обращения к содержимому коллекции в циклеforeachиспользуется перечислитель.
С перечислителем непосредственно связано другое средство, называемоеитератором.Это средство упрощает процесс создания классов коллекций, например специальных, поочередное обращение к которым организуется в циклеforeach.Итераторы также рассматриваются в этой главе.
И последнее замечание: если у вас имеется некоторый опыт программирования на C++, то вам, вероятно, будет полезно знать, что классы коллекций по своей сути подобны классам стандартной библиотеки шаблонов (Standard Template Library — STL), определенной в C++. То, что в программировании на C++ называетсяконтейнером, в программировании на C# называетсяколлекцией.Это же относится и к Java. Если вы знакомы с библиотекой Collections Framework для Java, то научиться пользоваться коллекциями в C# не составит для вас большого труда.