コード例 #1
0
        public void AddEntry(SortedVectorEventArgs <T> e)
        {
            AddDeleteNode <T> node;

            node.collectionName = e._collectionName;
            node.actionType     = e._actionType;
            node.changedObject  = e._changedObject;
            journal.Add(node);
        }
コード例 #2
0
        public void Remove(int index)
        {
            if (index < 0 || index >= _size)
            {
                Console.WriteLine("Incorrect index");
                return;
            }

            T item = _array[index];
            EventHandler <SortedVectorEventArgs <T> > handler = AddDeleteEvent;
            SortedVectorEventArgs <T> e = new SortedVectorEventArgs <T>("Remove", (T)item);

            handler?.Invoke(this, e);

            for (int i = index; i < _size - 1; i++)
            {
                _array[i] = _array[i + 1];
            }
            _size--;
        }
コード例 #3
0
        public void Add(IComparable <T> item)
        {
            EventHandler <SortedVectorEventArgs <T> > handler = AddDeleteEvent;
            SortedVectorEventArgs <T> e = new SortedVectorEventArgs <T>("Add", (T)item);

            handler?.Invoke(this, e);

            for (int index = 0; index < _size; index++)
            {
                if (item.CompareTo(_array[index]) < 0)
                {
                    T temp = _array[index];
                    _array[index] = (T)item;
                    item          = (IComparable <T>)temp;
                }
            }
            _array[_size++] = (T)item;
            if (_size == _capacity)
            {
                Resize();
            }
        }
コード例 #4
0
 private void HandleAddition(object sender, SortedVectorEventArgs <T> e) => addDeleteJournal.AddEntry(e);