我已阅读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))
最佳答案
lobjWaveOutList(0)("endTime")
将不起作用,因为它正在访问列表中的第一个字典,该字典仅包含“waveOut”
项目。 “endTime”
项位于列表中的第二 字典中。要获得这个,您需要执行以下操作:
Console.Write(lobjWaveOutList(1)("endTime"))
正如 Neolisk 指出的那样,根据您的示例,简单地拥有一个包含多个项目的字典,而不是一个字典列表,每个字典仅包含一个项目似乎更合适。
关于vb.net - DateTime 作为字典中的对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21166555/