//Remove item from the list public bool Remove(T item) { // var z= (((IEnumerable<T>)this).GetEnumerator()); //IEnumerator IEnumerable.GetEnumerator() //var z1 = (((IEnumerable<T>)this).GetEnumerator()); LInkedListNode <T> previous = null; LInkedListNode <T> current = Head; while (current != null) { if (current.Value.Equals(item)) { if (previous != null) { previous.Next = current.Next; if (previous.Next == null) { Tail = previous; } Count--; } else { RemoveFirst(); } return(true); } previous = current; current = current.Next; } return(false); }
public void AddFirst(LInkedListNode <T> node) { LInkedListNode <T> temp = Head; Head = node; node.Next = temp; Count++; }
public void CopyTo(T[] array, int arrayIndex) { LInkedListNode <T> current = Head; while (current.Next != null) { array[arrayIndex++] = current.Value; current = current.Next; } }
IEnumerator <T> IEnumerable <T> .GetEnumerator() { LInkedListNode <T> current = Head; while (current.Next != null) { yield return(current.Value); current = current.Next; } }
public void RemoveFirst() { if (Count != 0) { Head = Head.Next; Count--; if (Count == 0) { Tail = null; } } }
private void AddLast(LInkedListNode <T> node) { if (Count == 0) { Head = node; } else { Tail.Next = node; } Tail = node; Count++; }
public bool Contains(T item) { LInkedListNode <T> current = Head; while (current.Next != null) { if (current.Value.Equals(item)) { return(true); } current = current.Next; } return(false); }
public void RemoveLast() { if (Count != 0) { if (Count == 1) { Head = null; Tail = null; } else { LInkedListNode <T> current = Head; while (current.Next != null) { current = current.Next; } current.Next = null; Tail = current; } Count--; } }