gpt4 book ai didi

c# - 使用 Dictionary 作为 Dictionary>

转载 作者:行者123 更新时间:2023-11-30 13:33:12 26 4
gpt4 key购买 nike

在 C# 中,我需要将数据保存在字典对象中,如下所示:

Dictionary<string, Dictionary<string, string>> MyDict = 
new Dictionary<string, Dictionary<string, string>>();

现在我意识到,在某些情况下我需要一些其他(不是字典类的)数据作为主字典的值。

如果我只是举例说明主指令,是否存在任何类型的问题或限制。作为:

Dictionary<string, object> MyDict = new Dictionary<string, object>();

在对象字段中我可以放字符串、字典等等..

提前致谢,最好的问候,史蒂文

最佳答案

是的,你的字典将不再是强类型的——在第一种方法中你可以这样做:

string value = myDict["foo"]["bar"];

在第二种方法中,这是不可能的,因为你必须先转换:

string value = ((Dictionary<string,string>)myDict["foo"])["bar"];

听起来您的问题可以通过更好的设计方法来解决。通常可以通过重新设计解决方案来避免在同一数据结构中存储不同类型的对象 - 那么为什么您需要这样做?

编辑:

如果你只想处理 null 值,你可以这样做:

string value = myDict["foo"] != null ? myDict["foo"]["bar"] : null;

或者包裹在一个扩展方法中:

public static T GetValue<T>(this Dictionary<T, Dictionary<T,T>> dict, 
T key, T subKey) where T: class
{
T value = dict[key] != null ? dict[key][subKey] : null;
return value;
}

string value = myDict.GetValue("foo", "bar");

关于c# - 使用 Dictionary<string, object> 作为 Dictionary<string, Dictionary<string, string>>,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9197084/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com