protected void SafeSet(uint idx, T key, D value) { if (!m_cachedDictDataSaved.ContainsKey(idx)) { m_cachedDictDataSaved[idx] = new SimpleEnumerableList <T, D>(); } if (value == null) { m_cachedDictDataSaved[idx].Remove(key); } else { m_cachedDictDataSaved[idx][key] = value; } eventOnValueChanged?.Invoke(idx, key, value); }