Добавление элемента в список перед текущим - C#

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

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

Ребят помогите, не хочет добавлять элемент перед текущим и не видит(ListItem<T1>), подскажите в чем ошибки?
  public class List<T>: IEnumerable<T>, IEnumerator<T>
       {
         class ListItem<T1>
            {
                public T1 Data { get; set; }
                public ListItem<T1> Next { get; set; }
            }
 
            private ListItem<T> firstItem;
            private ListItem<T> currentItem;
       
           public void AddFirst(T item);
       
       ListItem<T> newItem = ListItem<T>();
       newItem.Data = item;
       newItem.Next = firstItem;
       firstItem = newItem;
         
           public T current
           {
               get
               {
                   if (currentItem == null)
                       throw new NullReferenceException("current can't be null");
                   return currentItem.Data;
               }
               set
               {
                   if (currentItem == null)
                       throw new NullReferenceException("current can't be null");
                   currentItem.Data = value;
               }
           }
           public void  Reset()
{
    currentItem = null;
}
            public void AddBeforeFirst(T item)
{
        ListItem<T> newItem = ListItem<T>();
       newItem.Data = item;
                 ListItem<T> tmpCounterItem= firstItem;
                tmpCounterItem.Next = newItem;
newItem.Next = tmpCounterItem.Next;
tmpCounterItem.Next = newItem;
 
}

public IEnumerator<T>  GetEnumerator()
{
    return this;
}
 
System.Collections.IEnumerator  System.Collections.IEnumerable.GetEnumerator()
{
    return this;
}

object  System.Collections.IEnumerator.Current
{
       get
               {
                   if (currentItem == null)
                       throw new NullReferenceException("current can't be null");
                   return currentItem.Data;
               }
       set
               {
                   if (currentItem == null)
                       throw new NullReferenceException("current can't be null");
                   currentItem.Data = (T)value;
               }
}
 
public bool  MoveNext()
{
    if(currentItem == null)
    {
        if (HasValues)
        {
            currentItem=firstItem;
            return true;
        }
    }
    return false;
    if (currentItem.Next != null)
    {
    currentItem = currentItem.Next;
        return true;
}
    return false;
}

public bool HasValues
{ 
get
    {
        return firstItem != null;
    }
}
}

Решение задачи: «Добавление элемента в список перед текущим»

textual
Листинг программы
        T IEnumerator<T>.Current
        {
            get { throw new NotImplementedException(); }
            set { current = value; }
        }

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


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

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

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