using JNPF.DependencyInjection;
namespace JNPF.Common.Extension;
///
/// 字典辅助扩展方法.
///
[SuppressSniffer]
public static class DictionaryExtensions
{
///
/// 从字典中获取值,不存在则返回字典类型的默认值.
///
/// 字典键类型.
/// 字典值类型.
/// 要操作的字典.
/// 指定键名.
/// 获取到的值.
public static TValue GetOrDefault(this IDictionary dictionary, TKey key)
{
return dictionary.TryGetValue(key, out TValue value) ? value : default(TValue);
}
///
/// 获取指定键的值,不存在则按指定委托添加值.
///
/// 字典键类型.
/// 字典值类型.
/// 要操作的字典.
/// 指定键名.
/// 添加值的委托.
/// 获取到的值.
public static TValue GetOrAdd(this IDictionary dictionary, TKey key, Func addFunc)
{
if (dictionary.TryGetValue(key, out TValue value))
{
return value;
}
return dictionary[key] = addFunc();
}
///
/// 替换值.
///
///
///
public static void ReplaceValue(this Dictionary dictionary1, Dictionary dictionary2)
{
foreach (var item in dictionary2.Keys)
{
if (dictionary1.ContainsKey(item))
{
dictionary1[item] = dictionary2[item];
}
}
}
}