Example #1
0
        public void Remove(TKey key)
        {
            var keyIndex = GetKeyIndex(key);

            if (keyIndex != -1)
            {
                _keys.RemoveAt(keyIndex);
                _values.RemoveAt(keyIndex);

                OnValueChanged.InvokeSafe(key);
                OnDictionaryChanged.InvokeSafe();
            }
        }
Example #2
0
        // Note: Calls OnValueChanged for each value so that persistency & ui can be updated correctly
        public void Clear()
        {
            var keysTmp = new List <TKey>(_keys); // Note: copy keys to avoid modification from subscribers

            _keys.Clear();
            _values.Clear();

            foreach (var key in keysTmp)
            {
                OnValueChanged.InvokeSafe(key);
            }

            OnDictionaryChanged.InvokeSafe();
        }
Example #3
0
        public virtual void Set(TKey key, TValue value)
        {
            var keyIndex = GetKeyIndex(key);

            if (keyIndex == -1)
            {
                _keys.Add(key);
                _values.Add(value);
            }
            else
            {
                _values[keyIndex] = value;
            }

            OnValueChanged.InvokeSafe(key);
            OnDictionaryChanged.InvokeSafe();
        }