我在 c# 中有一个dictionary
名字。Pair
它包含一些键值对。我添加了一个屏幕截图,在 上生成了一个异常(p.Key == "left)
,Sequence containes no matching element
但是如果您在 中看到,则Pair Dictionary
该left
密钥存在于那里。那么请有人告诉我为什么会发生这个异常?
问问题
71 次
3 回答
4
如果我没看错的话,这个left
值前面有一个空格" left"
,所以p.Key == "left"
永远不会是真的。
在尝试操作它之前,请改用p.Key.contains("left")
,或检查它是否返回值。或修剪前导和尾随空格。
于 2012-07-14T12:14:55.030 回答
1
您应该使用indexer或TryGetValue而不是Single。使用 Single,没有理由使用字典。
此外,您的问题源于这样一个事实,即“左”之前有空格,因此整个字符串实际上是“左”。看看宽度是如何向左移动一个字符。
于 2012-07-14T12:16:16.900 回答
1
如果这不是白马问题,那么我能做到的唯一方法是字典是否为 a Dictionary<object,...>
,在这种情况下,==
您使用的是引用相等,而不是字符串相等。那会导致它失败。如果是这样,请使用 aDictionary<string,...>
或使用Equals("left", p,Key)
.
请注意,这Pair["left"]
将是一种更好的查找方式。
于 2012-07-14T12:18:06.690 回答