/// <summary> /// Removes stored value /// </summary> /// <param name="index">The property index</param> /// <param name="key">The key use to add the value</param> public void Remove(int index, object key) { lock (m_LockObject) { PropertyEntry entry = (PropertyEntry)m_properties[index]; if (entry == null) { return; } if (entry.values == null) { return; } entry.values.Remove(key); // remove entry if it's empty if (entry.values.Count < 1) { m_properties.Remove(index); return; } entry.CalculateCachedValue(); } }