public object[] ToArray() { object[] result = new object[Count]; DoublyNode current = First; for (int i = 0; i < Count; i++) { result[i] = current.Data; current = current.Next; } return(result); }
public void AddFirst(object obj) { DoublyNode node = new DoublyNode(obj); node.Next = First; First.Previous = node; First = node; if (Count == 0) { Last = node; } Count++; }
public bool Contains(object obj) { DoublyNode current = First; while (current != null) { if (current.Data.Equals(obj)) { return(true); } current = current.Next; } return(false); }
public void Add(object obj) { DoublyNode node = new DoublyNode(obj); if (First == null) { First = node; } else { Last.Next = node; node.Previous = Last; } Last = node; Count++; }
public void Remove(object obj) { DoublyNode current = First; while (current != null) { if (current.Data.Equals(obj)) { break; } current = current.Next; } if (current != null) { if (current.Next != null) { current.Next.Previous = current.Previous; } else { Last = current.Previous; } if (current.Previous != null) { current.Previous.Next = current.Next; } else { First = current.Next; } Count--; } }