using System; using System.Collections.Generic; namespace JsonHelper { internal class SafeDictionary { private readonly object _Padlock = new object(); private readonly Dictionary _Dictionary = new Dictionary(); public bool TryGetValue(TKey key, out TValue value) { return _Dictionary.TryGetValue(key, out value); } public TValue this[TKey key] { get { return _Dictionary[key]; } } public IEnumerator> GetEnumerator() { return ((ICollection>)_Dictionary).GetEnumerator(); } public void Add(TKey key, TValue value) { lock (_Padlock) { if (_Dictionary.ContainsKey(key) == false) _Dictionary.Add(key, value); } } } }