public void Delete(KNode node) { if (node == null) { throw new NullReferenceException("node"); } if (this.Find(node.Value) == null) { throw new ArgumentOutOfRangeException(node.Value); } var clone = ((Array)_list).Clone(); var pos = 0; _list = new KNode[((Array)clone).Length - 1]; foreach (KNode item in (Array)clone) { if (!node.Equals(item)) { _list[pos] = item; pos++; } } }