コード例 #1
0
        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);
                }
            }
        }
コード例 #2
0
        public void SetRight(int rightSourceIndex)
        {
            HasRight = true;

            _rightJoiner = CreateJoinerData(false);

            _rightJoiner.SourceIndex = rightSourceIndex;

            JoinerAdded?.Invoke(_rightJoiner);

            if (_leftJoiners.Count == 0)
            {
                _rightJoiner.Set(_right);
            }
        }