当VB.NET ASP.NET 2.0字典中存在具有请求值的键时,KeyNotFoundException

当VB.NET ASP.NET 2.0字典中存在具有请求值的键时,KeyNotFoundException,vb.net,dictionary,asp.net-2.0,keynotfoundexception,Vb.net,Dictionary,Asp.net 2.0,Keynotfoundexception,ValueList变量定义为字典(字符串的,字符串的) 捕获的监视值显示数据(tmpData)的值为“1” ValueList的定义使得“1”的替换值为“项目资源”,这可以从SSGCol.ValueList监视变量的扩展中看出 但是,当我尝试访问该值时,会收到KeyNotFoundException 我以前做过成千上万次这样的事情,但由于某种原因,今天我无法让它发挥作用。我肯定错过了一些非常明显的东西,需要有人重新审视一下,当他们看到我明显的错误时给我一记耳光。也许字符串中有一些无法打印的字符。

ValueList变量定义为字典(字符串的,字符串的)

捕获的监视值显示数据(tmpData)的值为“1”

ValueList的定义使得“1”的替换值为“项目资源”,这可以从SSGCol.ValueList监视变量的扩展中看出

但是,当我尝试访问该值时,会收到KeyNotFoundException


我以前做过成千上万次这样的事情,但由于某种原因,今天我无法让它发挥作用。我肯定错过了一些非常明显的东西,需要有人重新审视一下,当他们看到我明显的错误时给我一记耳光。

也许字符串中有一些无法打印的字符。尝试比较字符串中的字节,例如:

Dim bytes() As Byte = System.Text.Encoding.Unicode.GetBytes(tmpData)
这对我有用

    Dim lst As New Dictionary(Of String, String)

    lst.Add("1", "Test")

    Dim tmpS As String = String.Empty
    lst.TryGetValue("1", tmpS)

很好,史蒂文。该键在字典键值中的“1”之前有一个游离的换行字符。字节显示键为{“10”、“0”、“49”、“0”},tmpData显示为{“49”、“0”}耶!我讨厌那些让你挠头的砖墙问题。再次感谢史蒂文,这是我的工具箱中增加的另一个工具。