Добавление элемента в список перед текущим - 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; }
}