Как инициализировать переменную равную последнему индексу массива ArrayList? - C#

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

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

Всем привет, мне нужно реализовать Enumerator, но перебирать элементы с конца массива ArrayList. Проблема в том, что я не знаю как установить переменной, которая является индексом массива изначально максимальное значение.Воn код моего Enumenator:
using System;
using System.Collections.Generic;
using System.Text;
using System.Collections;
 
namespace ArrayListProject
{
    public class PersonEnumerator : IEnumerator
    {
        int currIndex = person.GetChildrenNumber(); /*Инициализатор поля не может обращаться к нестатическому полю, методу или свойству "PersonEnumerator.person".*/
 
        PersonClass.Person person;
        public PersonEnumerator(PersonClass.Person person)
        {
            this.person = person;
        }
        #region IEnumerator Members
        public object Current
        {
            get { return person[currIndex]; }
        }
        public bool MoveNext()
        {
            currIndex--;
            if (currIndex <= -1)
                return false;
            else
                return true;
        }
        public void Reset()
        {
            currIndex = person.GetChildrenNumber();
        }
        #endregion
    }
}
Вот код класса Person, в котором находится массив, который необходимо перебрать:
using System;
using System.Collections;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using ArrayListProject;
 
namespace PersonClass
{
  public class Person: IPurse
    {
        public Person(string firstName,string lasName)
        {
            FirstName = firstName;
            LastName = lasName;
        }
        public string FirstName { get; set; }
        public string LastName { get; set; }
        
        #region Дети
         ArrayList Children = new ArrayList();
        public void AddChild(string firstName, string lastName)
        {
            Children.Add(new Person(firstName, lastName));
        }
        public void DeleteChild(int index)
        {
            Children.RemoveAt(index);
        }
        public Person GetChild(int index)
        {
            return (Person)Children[index];
        }
        #endregion
        public int GetChildrenNumber()
        {
            return Children.Count;
        }
        public Person this[int index]
        {
            get { return (Person)Children[index]; }
        }
        public IEnumerator GetEnumerator()
        {
            return new PersonEnumerator (this);
        }
    }
 
}

Решение задачи: «Как инициализировать переменную равную последнему индексу массива ArrayList?»

textual
Листинг программы
public PersonEnumerator(PersonClass.Person person)
        {
            this.person = person;
            currIndex = this.person.GetChildrenNumber(); 
        }

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


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

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

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