c# - c#有没有办法简化嵌套函数
问题描述
我有一个用于字典更新值的辅助类。代码如下所示:
public static void UpdateWithAggregate(
ConcurrentDictionary<string,
ConcurrentDictionary<string, ConcurrentDictionary<string, double>>> data,
string key1,
string key2,
string key3,
double value)
{
if (!data.ContainsKey(key1))
{
data[key1] =
new ConcurrentDictionary<string, ConcurrentDictionary<string, double>>();
}
UpdateWithAggregate(data[key1], key2, key3, value);
}
public static void UpdateWithAggregate(
ConcurrentDictionary<string, ConcurrentDictionary<string, double>> data,
string key1,
string key2,
double value)
{
if (!data.ContainsKey(key1))
{
data[key1] = new ConcurrentDictionary<string, double>();
}
UpdateWithAggregate(data[key1], key2, value);
}
public static void UpdateWithAggregate(
ConcurrentDictionary<string, double> data,
string key1,
double value)
{
if (!data.ContainsKey(key1))
{
data[key1] = value;
}
else
{
data[key1] += value;
}
}
我想知道是否有一种方法可以使用单个函数并获取任意嵌套字典及其键并进行添加。
解决方案
推荐阅读
- apache - Camel Java DSL:使用响应中的值更新下一个轮询请求参数
- sql - 用于比较不匹配记录的 SQL 查询
- macos - CMake:copy_directory 自定义命令在 macOS 上失败
- hibernate - 将 getCurrentAuditor 对象响应传递给瞬态 JPA 字段
- hibernate - envers 可以跨父/子表的整个层次结构审计更改吗?
- ios - 所有用户的平均时间如何大于“桌面和平板电脑”或“平板电脑”用户的平均页面时间?
- java - 有一种方法可以仅使用一种方法对 FXML 文件对象做出不同的响应吗?
- r - 使用 PCA 在我的 biplot 中隐藏/删除向量
- python - pd.DataFrame 在单列中打印输出
- laravel - 使用 vue 使用子域 api 并且总是得到 cors 错误