private void OnSetEmptied(ActiveListJoinerSet <TLeft, TRight, TResult, TKey> set) { _joinerLookup.Remove(set.Key); set.JoinerAdded -= OnJoinerAdded; set.JoinerRemoved -= OnJoinerRemoved; set.SetEmptied -= OnSetEmptied; set.Dispose(); }
private ActiveListJoinerSet <TLeft, TRight, TResult, TKey> CreateJoinerSet(TKey key) { var set = new ActiveListJoinerSet <TLeft, TRight, TResult, TKey>(_joinBehaviour, key, _rightItems, (l, r) => _resultSelector.Invoke(l, r, ParameterValue), _leftResultSelectorPropertiesToWatch, _rightResultSelectorPropertiesToWatch); set.JoinerAdded += OnJoinerAdded; set.JoinerRemoved += OnJoinerRemoved; set.SetEmptied += OnSetEmptied; return(set); }