![](/img/trans.png)
[英]Xamarin.Forms - KeyNotFoundException: The given key was not present in the dictionary C#
[英]C#: KeyNotFoundException: The given key was not present in the dictionary
foreach (KeyValuePair<String, EngineProperty> kvp in propertyDict)
{
Debug.Log(kvp.Key.GetType()+" : "+ kvp.Key+ " "+ mainText.text.GetType()+ " "+ mainText.text);
}
slider.value = propertyDict[mainText.text].GetSpeed();
从 foreach 循环打印 5 个项目。 下面的代码是其中之一
System.String : Piston System.String Piston
Piston
是我要找的钥匙
但是在 for 循环的正下方,
当我使用这个
slider.value = propertyDict[mainText.text].GetSpeed();
我收到这个错误
KeyNotFoundException: The given key was not present in the dictionary.
但是 key 是在 for 循环中打印的。 我不明白。
这就是我初始化的方式
public Dictionary<String, EngineProperty> propertyDict = new Dictionary<String, EngineProperty>();
我曾尝试用一切替换String
与string
,并且还在,这是行不通的。
我该怎么办?
正如 Jon Skeet 在他的评论中所说,这个问题看起来是额外的空间。 如果您查看字符串System.String : Piston
的第一部分,冒号和 Piston 之间有 3 个空格,但您只在分隔符中放了一个空格。 这意味着活塞开头有 2 个空格。 同样,在 Piston 之后有 3 个,所以这意味着实际的字符串是Piston
。 对于mainText
,根据您发布的字符串,您在 Piston 之前有一个类似的 3 个空格,但之后没有。 这将使mainText
成为Piston
,这不匹配。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.