using System.Collections.Generic; namespace NEG.Utils.Collections { public static class DictionaryExtensions { /// /// Adds an element to a dictionary if there was none assigned to specified , otherwise replaces the existing /// /// true if element was added, false if it was replaced public static bool AddOrUpdate(this Dictionary dict, K key, V value) { if (dict.ContainsKey(key)) { dict[key] = value; return false; } else { dict.Add(key, value); return true; } } /// /// Gets a value from the dictionary under a specified key or sets it if there was no assoiation then return the associated value /// /// public static V GetOrSetToDefault(this Dictionary dict, K key, V defaultValue) { if (dict.TryGetValue(key, out V value)) { return value; } dict.Add(key, defaultValue); return defaultValue; } } }