如何获取Dictionary<;int,字符串>;从方法返回

本文关键字:int 字符串 gt 返回 方法 lt 何获取 获取 Dictionary | 更新日期: 2023-09-27 18:29:47

我正在动态收集数据,并选择Dictionary<int, string>作为存储这些数据的数据结构。

在我的方法开始时,我声明了一个变量:

Dictionary<int, string> templatesKeyName = new Dictionary<int, string>();

在方法的末尾,我希望templatesKeyName包含与此请求相关的所有int(id)和Names对。例如,我有:

private static Dictionary<int, string> GetTemplateForUserWithAccount()
{
Dictionary<int, string> kv = new Dictionary<int, string>();
//populate the `kv` dictionary
return kv;
}

我希望能够做一些类似的事情:

if(Client.Accounts.Count > 0)
{
  templatesKeyName.Add(GetTemplateForUserWithAccount());
}

显然,.Add()扩展需要两个参数,但我不知道如何在不编写的情况下传递方法中的值。首先将结果分配给临时Dictionary,然后使用foreach进行迭代。此外,大多数时候我很可能会得到一个结果,所以迭代并不是我真正考虑的事情。

如何获取Dictionary<;int,字符串>;从方法返回

您可以为此创建一个扩展方法:

public static void AddRange<T,K>(this Dictionary<T,K> source, IEnumerable<KeyValuePair<T,K>> values)
{
    foreach(var kvp in values)
    {
       if(!source.ContainsKey(kvp.Key))
          source.Add(kvp.Key, kvp.Value);
    }
}

并按如下方式使用:

templatesKeyName.AddRange(GetTemplateForUserWithAccount());