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]; } }