using System; using System.Collections.Generic; using System.Linq; namespace NzbDrone.Common.Extensions { public static class DictionaryExtensions { #if !NETCOREAPP public static TValue GetValueOrDefault(this IReadOnlyDictionary dictionary, TKey key, TValue defaultValue = default(TValue)) { TValue value; return dictionary.TryGetValue(key, out value) ? value : defaultValue; } #endif public static Dictionary Merge(this Dictionary first, Dictionary second) { if (first == null) throw new ArgumentNullException(nameof(first)); if (second == null) throw new ArgumentNullException(nameof(second)); var merged = new Dictionary(); first.ToList().ForEach(kv => merged[kv.Key] = kv.Value); second.ToList().ForEach(kv => merged[kv.Key] = kv.Value); return merged; } public static void Add(this ICollection> collection, TKey key, TValue value) { collection.Add(new KeyValuePair(key, value)); } } }