我在c#中有一个dictionary
名称Pair
。它包含一些键 - 值对。我添加了一个屏幕截图,在(p.Key == "left)
,Sequence containes no matching element
上生成了异常但如果您在Pair Dictionary
中看到,那么left
键就会出现。那么请有人告诉我为什么会发生这种异常?
答案 0 :(得分:4)
如果我能看到它,则left
值前面有一个空格" left"
,因此p.Key == "left"
永远不会为真。
使用p.Key.contains("left")
代替,或者在尝试操作之前检查它是否返回值。或修剪前导和尾随空格。
答案 1 :(得分:1)
您应该使用indexer或TryGetValue代替Single。使用Single时,没有理由使用字典。
另外,你的问题源于这样一个事实,即'left'之前有空格,所以整个字符串实际上是“左”。看看宽度是左边的一个字符。
答案 2 :(得分:1)
如果它不是白色问题,那么我能做到的唯一方法就是字典是Dictionary<object,...>
,在这种情况下,您使用的==
是引用相等,而不是字符串相等。这会导致它失败。如果是,请使用Dictionary<string,...>
或使用Equals("left", p,Key)
。
请注意,Pair["left"]
是一种更好的查找方式。