Интерфейс IEnumerable: вывести сначала чётные, потом нечётные элементы коллекции - C#
Формулировка задачи:
Работа с коллекциями, по заданию нужно вывести сначала все четные, затем все нечётные коллекции, часть кода приведенный ниже выводит все подряд
В результате я получаю:
бла бла
бу бу
аа аа
фф фф
ее ее
ту ту
т.к идет простой перебор
А надо:
бла бла
аа аа
ее ее
бу бу
фф фф
ту ту
циклами не получается, есть вариант использовать foreach, но не знаю как получить номер строки.
Листинг программы
- int position = -1;
- public bool MoveNext()
- {
- position++;
- return (position < _people.Length);
- }
- public void Reset()
- {
- position = -1;
- }
Листинг программы
- using System;
- using System.Collections;
- public class Person
- {
- public Person(string fName, string lName)
- {
- this.firstName = fName;
- this.lastName = lName;
- }
- public string firstName;
- public string lastName;
- }
- public class People : IEnumerable
- {
- private Person[] _people;
- public People(Person[] pArray)
- {
- _people = new Person[pArray.Length];
- for (int i = 0; i < pArray.Length; i++)
- {
- _people[i] = pArray[i];
- }
- } IEnumerator IEnumerable.GetEnumerator()
- {
- return (IEnumerator) GetEnumerator();
- }
- public PeopleEnum GetEnumerator()
- {
- return new PeopleEnum(_people);
- }
- }
- public class PeopleEnum : IEnumerator
- {
- public Person[] _people;
- int position = -1;
- public PeopleEnum(Person[] list)
- {
- _people = list;
- }
- public bool MoveNext()
- {
- position++;
- return (position < _people.Length);
- }
- public void Reset()
- {
- position = -1;
- }
- object IEnumerator.Current
- {
- get
- {
- return Current;
- }
- }
- public Person Current
- {
- get
- {
- try
- {
- return _people[position];
- }
- catch (IndexOutOfRangeException)
- {
- throw new InvalidOperationException();
- }
- }
- }
- }
- class App
- {
- static void Main()
- {
- Person[] peopleArray = new Person[6]
- {
- new Person("бла", "бла"),
- new Person("бу", "бу"),
- new Person("аа", "аа"),
- new Person("фф", "фф"),
- new Person("ее", "ее"),
- new Person("ту", "ту"),
- };
- People peopleList = new People(peopleArray);
- foreach (Person p in peopleList)
- Console.WriteLine(p.firstName + " " + p.lastName);
- }
- }
Решение задачи: «Интерфейс IEnumerable: вывести сначала чётные, потом нечётные элементы коллекции»
textual
Листинг программы
- public int GetLenght()
- {
- return _people.Length;
- }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д