Example #1
0
        static void Main()
        {
            UserCollection myCollection = new UserCollection();

            foreach (Element element in myCollection)
            {
                //Console.WriteLine("Name: {0}  Field1: {1} Field2: {2}", element.Name, element.Field1, element.Field2);
                Console.WriteLine("Gago:{0}", "aaa");
                Console.WriteLine("jj");
            }

            //myCollection.Reset(); //
            Console.Write(new string('-', 29) + "\n");
            // Используем foreach, для повторного обращения к каждому объекту Element внутри массива myCollection.
            foreach (Element element in myCollection)
            {
                Console.WriteLine("Name: {0}  Field1: {1} Field2: {2}", element.Name, element.Field1, element.Field2);
            }

            Console.Write(new string('-', 29) + "\n");
            // ----------------------------------------------------------------------------------------------------------------------
            // Так работает foreach.
            UserCollection myElementsCollection = new UserCollection();
            // foreach - приводит коллекцию к интерфейсному типу IEnumerable.
            IEnumerable enumerable = myElementsCollection as IEnumerable;
            // foreach - приводит коллекцию к интерфейсному типу вызывая метод - GetEnumerator().
            IEnumerator enumerator = enumerable.GetEnumerator();

            while (enumerator.MoveNext()) // Перемещаем курсор на 1 шаг вперед (с -1 на 0) и т.д.
            {
                Element element = enumerator.Current as Element;
                Console.WriteLine("Name: {0}  Field1: {1} Field2: {2}", element.Name, element.Field1, element.Field2);
            }
            enumerator.Reset();
            // Задержка.
            Console.ReadKey();
        }