Интерфейс 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; }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д