Exemple #1
0
        public void Update(TKey key, TValue value)
        {
            CheckPairOnNull(key, value);

            if (_items != null)
            {
                var index = Hash(key);

                var pair = new NodePair <TKey, TValue>(key, value);

                if (_items[index] != null)
                {
                    _items[index].RemoveFirst();
                    _items[index].AddFirst(pair);
                }

                else
                {
                    throw new ArgumentException($"{nameof(key)} doesn't exist.");
                }
            }

            else
            {
                throw new NullReferenceException($"{_items}");
            }
        }
Exemple #2
0
        public bool Remove(TKey key)
        {
            var index = Hash(key);

            if (_items == null)
            {
                return(false);
            }

            if (_items[index] == null)
            {
                return(false);
            }

            TValue value;

            TryGetValue(key, out value);

            var pair = new NodePair <TKey, TValue>(key, value);

            _items[index].Remove(pair);

            Size--;

            return(true);
        }
Exemple #3
0
        public void Add(TKey key, TValue value)
        {
            CheckPairOnNull(key, value);

            if (GetLoadFactor() >= LoadFactor)
            {
                Resize();
            }

            var index = Hash(key);

            if (_items == null)
            {
                _items = new LinkedList <NodePair <TKey, TValue> > [Capacity];
            }


            if (_items[index] == null)
            {
                _items[index] = new LinkedList <NodePair <TKey, TValue> >();

                var pair = new NodePair <TKey, TValue>(key, value);

                var node = new LinkedListNode <NodePair <TKey, TValue> >(pair);

                _items[index].AddFirst(node);

                Size++;
            }

            else
            {
                throw new ArgumentException($"{nameof(key)} must be uniq.");
            }
        }