public void Insert(int index, FallBackNode <Tkey, TGenerate> item) { _innerList.Insert(index, item); if (IncOccurance(item.ID) == 1) { item.OnDetach += RemoveFromList; } }
public void Add(FallBackNode <Tkey, TGenerate> node) { _innerList.Add(node); if (IncOccurance(node.ID) == 1) { node.OnDetach += RemoveFromList; } }
public bool Remove(FallBackNode <Tkey, TGenerate> node) { if (_innerList.Remove(node)) { if (--_occuranceMap[node.ID] == 0) { node.OnDetach -= RemoveFromList; } return(true); } return(false); }
public int IndexOf(FallBackNode <Tkey, TGenerate> item) => _innerList.IndexOf(item);
private void RemoveFromList(FallBackNode <Tkey, TGenerate> node) { _innerList.RemoveAll(x => x.ID == node.ID); OnDetachedNodeRemoved?.Invoke(node); }
public bool Contains(FallBackNode <Tkey, TGenerate> item) => _innerList.Contains(item);