我已阅读here字典(字符串,对象)可以容纳多种变量类型。但是,在下面的函数中,endTime似乎没有被分配。下面代码中的行Console.Write(lobjWaveOutList(0)("endTime"))
给出了错误'字典中没有给定的密钥'。
Private lobjWaveOutList As New List(Of Dictionary(Of String, Object))()
Public Sub addIndex(waveOut As Object, endTime As DateTime)
Console.WriteLine("endTime:")
Console.WriteLine(endTime)
lobjWaveOutList.Add(New Dictionary(Of String, Object)() From {{"waveOut", waveOut}})
lobjWaveOutList.Add(New Dictionary(Of String, Object)() From {{"endTime", endTime}})
Console.Write(lobjWaveOutList(0)("endTime"))
End Sub
我使用以下参数调用了addIndex函数:
waveouts.addIndex(New WaveOut(), DateTime.Now.AddSeconds(10))
答案 0 :(得分:2)
lobjWaveOutList(0)("endTime")
无效,因为它正在访问列表中的第一个字典,该字典仅包含"waveOut"
项。 "endTime"
项位于列表中的 second 字典中。要获得那个,你需要这样做:
Console.Write(lobjWaveOutList(1)("endTime"))
正如Neolisk指出的那样,根据你的例子,仅仅有一个包含多个项目的字典而不是一个字典列表似乎更合适,每个字典只包含一个项目。
答案 1 :(得分:0)
因为你有一个词典列表“endtime”在这里:lobjWaveOutList(1)("endTime")