c# - 使用变量设置字典键和值类型

标签 c# dictionary

我目前正在努力创建字典。我想创建它以便它可以在多种情况下使用。但是,这些情况因键和值类型而异。所以当你通常这样做时:

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

我想做这样的事情:

Dictionary<variable1, variable2> ..............

variable1 是什么并不重要。它可以是一个字符串,将“string”或“int”存储为值。我还可以使用 variable1.getType() 来确定类型。无论哪种方式都适合我。但是我上面做的方式,嗯,那是不正确的。必须有另一种方法来设置基于变量的键和值类型......对吧?

我突然想到,要使用 if 来检查类型是什么,并根据类型让字典使用该类型。但是随着类型的增多,将会有很多 if,我觉得必须有更好的方法。

搜索对我帮助不大。好吧,我学到了一些其他的东西,但没有解决我的问题。在每种情况下,字典 TKeyTValue 都是手动设置的。当我想设置它们时,我使用从某些来源获取的变量。

最佳答案

There must be another way to set the key and value type based on variables... right?

是的,有。您可以制作一个创建字典的辅助方法,例如:

public static Dictionary<K, V> CreateDictionaryFor<K, V>(K key, V value)
{
    return new Dictionary<K, V>();
}

然后,您可以将它与 variable1variable2 一起使用:

var dictionary = CreateDictionaryFor(variable1, variable2);

关于c# - 使用变量设置字典键和值类型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31373119/

相关文章:

arrays - 列表理解的方法,以设定的间隔将不同的字符串连接到列表中。 (与语言无关)

python - Kotlin:从文件加载包含字符串和元组的字典( HashMap )

c# - 如何将多维数组转换为字典?

c# - 使用 Serilog 的模式(通过 ILogger 与使用静态 Serilog.Log)

performance - Scala 最高效的 Map 实现

arrays - Swift 数组循环一次,写很多

c# - 如何使用纬度和经度计算距离和方位?

c# - 到处查找枚举转换为字符串

c# 子字符串找不到字符串

c# - GnuPG 必须为每个用户名配置文件安装 key 吗?