You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
|
|
|
|
using System;
|
|
|
|
|
using System.Collections.Generic;
|
|
|
|
|
using System.Linq;
|
|
|
|
|
|
|
|
|
|
namespace NzbDrone.Common
|
|
|
|
|
{
|
|
|
|
|
public static class DictionaryExtensions
|
|
|
|
|
{
|
|
|
|
|
public static TValue GetValueOrDefault<TKey, TValue>(this IDictionary<TKey, TValue> dictionary, TKey key, TValue defaultValue = default(TValue))
|
|
|
|
|
{
|
|
|
|
|
TValue value;
|
|
|
|
|
return dictionary.TryGetValue(key, out value) ? value : defaultValue;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
public static Dictionary<T1, T2> Merge<T1, T2>(this Dictionary<T1, T2> first, Dictionary<T1, T2> second)
|
|
|
|
|
{
|
|
|
|
|
if (first == null) throw new ArgumentNullException("first");
|
|
|
|
|
if (second == null) throw new ArgumentNullException("second");
|
|
|
|
|
|
|
|
|
|
var merged = new Dictionary<T1, T2>();
|
|
|
|
|
first.ToList().ForEach(kv => merged[kv.Key] = kv.Value);
|
|
|
|
|
second.ToList().ForEach(kv => merged[kv.Key] = kv.Value);
|
|
|
|
|
|
|
|
|
|
return merged;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|