Интерфейс IEnumerable: вывести сначала чётные, потом нечётные элементы коллекции - C#

Узнай цену своей работы

Формулировка задачи:

Работа с коллекциями, по заданию нужно вывести сначала все четные, затем все нечётные коллекции, часть кода приведенный ниже выводит все подряд
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);
 
    }
}
В результате я получаю: бла бла бу бу аа аа фф фф ее ее ту ту т.к идет простой перебор А надо: бла бла аа аа ее ее бу бу фф фф ту ту циклами не получается, есть вариант использовать foreach, но не знаю как получить номер строки.

Решение задачи: «Интерфейс IEnumerable: вывести сначала чётные, потом нечётные элементы коллекции»

textual
Листинг программы
public int GetLenght()
    {
        return _people.Length;
    }

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

9   голосов , оценка 3.556 из 5
Похожие ответы