public bool Remove(T itemToFind, T itemToRemove) { if ((itemToRemove == null) || (this._firstItem == null) || (itemToFind == null)) { return(false); } DoubleLinkedListItem <T> foundItem = Find(itemToFind); if (foundItem.Equals(this._firstItem)) { this._firstItem = this._firstItem.NextItem; return(true); } if (foundItem.Equals(this._lastItem)) { this._lastItem = this._lastItem.ItemBefore; return(true); } if (foundItem == null) { return(false); } else { foundItem.ItemBefore.NextItem = foundItem.NextItem; foundItem.NextItem.ItemBefore = foundItem.ItemBefore; return(true); } }
public bool Remove(T itemToRemove) { if (itemToRemove == null) { return(false); } if (this._firstItem == null) { return(false); } DoubleLinkedListItem <T> found = Find(itemToRemove); if (found == null) { return(false); } if (found.Equals(_firstItem.Item)) { _firstItem = _firstItem.NextItem; _firstItem.PreviousItem = null; return(true); } if (found == _lastItem) { _lastItem = _lastItem.PreviousItem; _lastItem.NextItem = null; return(true); } found.NextItem.PreviousItem = found.PreviousItem; found.PreviousItem.NextItem = found.NextItem; return(true); }