csharp [AddOrUpdate]あれば更新,なければ添加#ExtensionMethod

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了csharp [AddOrUpdate]あれば更新,なければ添加#ExtensionMethod相关的知识,希望对你有一定的参考价值。

public static TValue AddOrUpdate<TKey, TValue>(this IDictionary<TKey, TValue> dict, TKey key, TValue addValue, Func<TKey, TValue, TValue> updateValueFactory)
  => dict[key] = dict.TryGetValue(key, out TValue result) ? updateValueFactory(key, result) : addValue;

public static TValue AddOrUpdate<TKey, TValue>(this IDictionary<TKey, TValue> dict, TKey key, TValue addValue, Func<TValue, TValue> updateValueFactory)
  => dict[key] = dict.TryGetValue(key, out TValue result) ? updateValueFactory(result) : addValue;

public static TValue AddDefaultOrUpdate<TKey, TValue>(this IDictionary<TKey, TValue> dict, TKey key, Func<TKey, TValue, TValue> updateValueFactory)
  => dict.AddOrUpdate(key, default(TValue), updateValueFactory);

public static TValue AddDefaultOrUpdate<TKey, TValue>(this IDictionary<TKey, TValue> dict, TKey key, Func<TValue, TValue> updateValueFactory)
  => dict.AddOrUpdate(key, default(TValue), updateValueFactory);

public static TValue AddOrUpdate<TKey, TValue>(this IDictionary<TKey, TValue> dict, TKey key, Func<TKey, TValue> addValueFactory, Func<TKey, TValue, TValue> updateValueFactory)
  => dict[key] = dict.TryGetValue(key, out TValue result) ? updateValueFactory(key, result) : addValueFactory(key);

public static TValue AddOrUpdate<TKey, TValue>(this IDictionary<TKey, TValue> dict, TKey key, Func<TValue> addValueFactory, Func<TValue, TValue> updateValueFactory)
  => dict[key] = dict.TryGetValue(key, out TValue result) ? updateValueFactory(result) : addValueFactory();

以上是关于csharp [AddOrUpdate]あれば更新,なければ添加#ExtensionMethod的主要内容,如果未能解决你的问题,请参考以下文章

csharp 实现.AddOrUpdate也支持nullables

csharp 字典扩展 - GetOrAdd,AddOrUpdate

csharp [GetOrDefault]键がなければ默认値を返します。#ExtensionMethod

csharp [TryAdd] KeyがなければValueと共に追加します。#ExtensionMethod

csharp [cmをinchに変换] ClosedXMLで余白などの指定をするときはインチ指定しなければならない。#ClosedXML #ExtensionMethod

如何使用 AddOrUpdate 的多个条件来确定数据库是不是应该添加模型或更新?