namespace MesETL.App.Helpers;
public static class DictionaryExtensions
{
///
/// 根据指定的键是否存在来添加或是更新字典
///
///
/// 指定的键
/// 如果指定的键不存在,则向字典添加该值
/// 如果指定的键存在,则根据该委托的返回值修改字典中对应的值
///
///
/// 添加或是修改后的值
public static TValue AddOrUpdate(this IDictionary @this, TKey key, TValue addValue,
Func updateFactory)
{
if (!@this.TryGetValue(key, out var value))
{
@this.Add(key, addValue);
}
else
{
@this[key] = updateFactory(key, value);
}
return @this[key];
}
}