private void RemoveLeft(ActiveListJoinerData <TLeft, TRight, TResult, TKey> data) { try { data.Clear(); } finally { JoinerRemoved.Invoke(data); data.Dispose(); if (_leftJoiners.Count == 0) { _rightJoiner?.Set(_right); } if (_leftJoiners.Count == 0 && !HasRight) { SetEmptied?.Invoke(this); } } }
public void SetRight(int rightSourceIndex) { HasRight = true; _rightJoiner = CreateJoinerData(false); _rightJoiner.SourceIndex = rightSourceIndex; JoinerAdded?.Invoke(_rightJoiner); if (_leftJoiners.Count == 0) { _rightJoiner.Set(_right); } }