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

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

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

Работа с коллекциями, по заданию нужно вывести сначала все четные, затем все нечётные коллекции, часть кода приведенный ниже выводит все подряд
Листинг программы
  1. int position = -1;
  2. public bool MoveNext()
  3. {
  4. position++;
  5. return (position < _people.Length);
  6. }
  7. public void Reset()
  8. {
  9. position = -1;
  10. }
Листинг программы
  1. using System;
  2. using System.Collections;
  3. public class Person
  4. {
  5. public Person(string fName, string lName)
  6. {
  7. this.firstName = fName;
  8. this.lastName = lName;
  9. }
  10. public string firstName;
  11. public string lastName;
  12. }
  13. public class People : IEnumerable
  14. {
  15. private Person[] _people;
  16. public People(Person[] pArray)
  17. {
  18. _people = new Person[pArray.Length];
  19. for (int i = 0; i < pArray.Length; i++)
  20. {
  21. _people[i] = pArray[i];
  22. }
  23. } IEnumerator IEnumerable.GetEnumerator()
  24. {
  25. return (IEnumerator) GetEnumerator();
  26. }
  27. public PeopleEnum GetEnumerator()
  28. {
  29. return new PeopleEnum(_people);
  30. }
  31. }
  32. public class PeopleEnum : IEnumerator
  33. {
  34. public Person[] _people;
  35.  
  36. int position = -1;
  37. public PeopleEnum(Person[] list)
  38. {
  39. _people = list;
  40. }
  41. public bool MoveNext()
  42. {
  43. position++;
  44. return (position < _people.Length);
  45. }
  46. public void Reset()
  47. {
  48. position = -1;
  49. }
  50. object IEnumerator.Current
  51. {
  52. get
  53. {
  54. return Current;
  55. }
  56. }
  57. public Person Current
  58. {
  59. get
  60. {
  61. try
  62. {
  63. return _people[position];
  64. }
  65. catch (IndexOutOfRangeException)
  66. {
  67. throw new InvalidOperationException();
  68. }
  69. }
  70. }
  71. }
  72. class App
  73. {
  74. static void Main()
  75. {
  76. Person[] peopleArray = new Person[6]
  77. {
  78. new Person("бла", "бла"),
  79. new Person("бу", "бу"),
  80. new Person("аа", "аа"),
  81. new Person("фф", "фф"),
  82. new Person("ее", "ее"),
  83. new Person("ту", "ту"),
  84. };
  85. People peopleList = new People(peopleArray);
  86. foreach (Person p in peopleList)
  87. Console.WriteLine(p.firstName + " " + p.lastName);
  88. }
  89. }
В результате я получаю: бла бла бу бу аа аа фф фф ее ее ту ту т.к идет простой перебор А надо: бла бла аа аа ее ее бу бу фф фф ту ту циклами не получается, есть вариант использовать foreach, но не знаю как получить номер строки.

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

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

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


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

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

9   голосов , оценка 3.556 из 5

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут
Похожие ответы