首页 > 解决方案 > 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;
    }
}

我想知道是否有一种方法可以使用单个函数并获取任意嵌套字典及其键并进行添加。

标签: c#dictionary

解决方案


推荐阅读