public ImmutableTreeSet <TValue> AddOrUpdate(TValue value) { Node newNode; TryAdd(value, value, out newNode, AddOperation.AddOrUpdate); var newTreeMap = new ImmutableTreeSet <TValue>(newNode); return(newTreeMap); }
public bool TryRemove(TValue value, out ImmutableTreeSet <TValue> newMap) { Node newNode; if (TryRemove(value, out newNode)) { newMap = newNode == null ? Empty : new ImmutableTreeSet <TValue>(newNode); return(true); } newMap = this; return(false); }
public bool TryAdd(TValue value, out ImmutableTreeSet <TValue> newTreeMap) { Node newNode; var couldAdd = TryAdd(value, value, out newNode, AddOperation.AddOnlyUnique); if (!couldAdd) { newTreeMap = this; return(false); } newTreeMap = new ImmutableTreeSet <TValue>(newNode); return(true); }