我在Visual Basic中有一个字典对象,我想用字符串键访问它。问题是,Visual Basic存储对字符串的引用,而不是字符串本身。因此,当我使用键索引字典时,它始终会失败,因为对象引用不相等。我无法索引的字典有什么意义?我该如何解决这个问题?
编辑:
为了更清楚,我希望能够更像Python字典使用它,其中字符串键是不可变类型,因此比较内容而不是对象引用。
答案 0 :(得分:3)
.Net 中的字符串不可变。字典 DOES 按您希望的方式工作:
Dim Store As New Dictionary(Of String, Object)
Store("Key1") = New Form()
Store("Key2") = New Exception()
Store("Key3") = 10
Store("Key4") = "Test"
MessageBox.Show(Store("Key1").GetType().FullName) ' System.Windows.Forms.Form
MessageBox.Show(Store("Key2").GetType().FullName) ' System.Exception
MessageBox.Show(Store("Key3").GetType().FullName) ' System.Int32
MessageBox.Show(Store("Key4").GetType().FullName) ' System.String