public void Remove(int index) { var current = First; while (current.Next != null) { if (index == 0) { current = current.Next; First = current; while (current.Next != null) { current.Index = current.Index - 1; current = current.Next; if (current.Next == null) { current.Index = current.Index - 1; } } break; } if (current.Next == null) { while (current.Next != null) { //Console.WriteLine("This item has been deleted: " + current.Next.Next.Value); current = current.Next; } current.Next = null; break; } else if (current.Index == index - 1) { current.Next = current.Next.Next; break; } else { current = current.Next; } } while (current.Next != null) { if ((current.Next.Index - current.Index) == 2) { current.Next.Index = current.Next.Index - 1; } current = current.Next; } }
public void Add(IforItem item) { if (First == null) { First = item; item.Index = 0; } else { var current = First; while (current.Next != null) { current = current.Next; } item.Index = current.Index + 1; current.Next = item; } }