gpt4 book ai didi

c# - 尝试将 Dictionary 分配给字符串变量时出现错误

转载 作者:太空宇宙 更新时间:2023-11-03 19:01:09 31 4
gpt4 key购买 nike

    Dictionary<string, object> myVal = new Dictionary<string, object>();
myVal.Add("key1", "value1");
myVal.Add("key2", "value2");
foreach (var val in myVal)
{
if (val.Key == "key1")
{
string mystr = val.Value;
Console.Write(val.Value);
Console.ReadLine();
}
}

我收到此错误:

Cannot implicitly convert type 'object' to 'string'. An explicit conversion exists (are you missing a cast?)

最佳答案

为什么会出现这样的错误:

同时使用 Dictionary<string, object> 迭代集合( foreach (var val in myVal) )每个val将是 KeyValuePair<string, object>其中 val.Key表示 key 和 val.Value表示key对应的Value。

在您的情况下,该值的类型为 object因为您的收藏类型是 <string, object> .并通过使用 string mystr = val.Value;您正在将一个对象分配给一个字符串变量。根据规则,不允许进行此分配。

解决方案:

  • 将对象转换为如下字符串:

    string mystr = (string)(val.Value);
  • 声明myVal.Add("key2", "value2");填充 Dictionary表示key和value都是string类型所以可以重新定义Dictionary为

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

关于c# - 尝试将 Dictionary<string, object> 分配给字符串变量时出现错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35567982/

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