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