public static class DictionaryExtensions
{
//Override value of identifical key in base dictionary
public static void AddRangeOverride<TKey, TValue>(this IDictionary<TKey, TValue> baseDictionary,
IDictionary<TKey, TValue> dictionaryToAdd)
{
foreach (var x in dictionaryToAdd)
{
baseDictionary[x.Key] = x.Value;
}
}
//Only add new keys into the base dictionary
public static void AddRangeNewOnly<TKey, TValue>(this IDictionary<TKey, TValue> baseDictionary,
IDictionary<TKey, TValue> dictionaryToAdd)
{
foreach (var x in dictionaryToAdd)
{
if (!baseDictionary.ContainsKey(x.Key))
{
baseDictionary.Add(x.Key, x.Value);
}
}
}
//this will throw an error if an existing key from the dictionary to add exists in the base dictionary
public static void AddRange<TKey, TValue>(this IDictionary<TKey, TValue> baseDictionary,
IDictionary<TKey, TValue> dictionaryToAdd)
{
foreach (var x in dictionaryToAdd)
{
baseDictionary.Add(x.Key, x.Value);
}
}
}