public bool Delete(object value) { if (Header == null) { return(false); } DoubleLinkedNode preNode = null; DoubleLinkedNode visitingNode = Header; while (visitingNode != null && !visitingNode.Value.Equals(value)) { preNode = visitingNode; visitingNode = visitingNode.NextNode; } if (visitingNode != null) { if (preNode == null) { if (visitingNode.NextNode != null) { Header = Header.NextNode; Header.PrevNode = null; } else { Header = null; Tailer = null; } } else { if (visitingNode.NextNode != null) { preNode.NextNode = visitingNode.NextNode; visitingNode.NextNode.PrevNode = preNode; } else { preNode.NextNode = null; Tailer = preNode; } } return(true); } else { return(false); } }
public bool Contains(object value) { DoubleLinkedNode visitingNode = Header; while (visitingNode != null && !visitingNode.Value.Equals(value)) { visitingNode = visitingNode.NextNode; } if (visitingNode == null) { return(false); } else { return(true); } }