我在 Visual Basic 中有一个字典对象,我想用字符串键访问它。问题是,Visual Basic 存储的是对字符串的引用,而不是字符串本身。所以当我用一个键索引字典时,它总是失败,因为对象引用不相等。我无法索引的字典有什么意义?我该如何解决这个问题?
编辑:
更清楚地说,我希望能够更像 Python 字典那样使用它,其中字符串键是不可变类型,因此比较内容而不是对象引用。
我在 Visual Basic 中有一个字典对象,我想用字符串键访问它。问题是,Visual Basic 存储的是对字符串的引用,而不是字符串本身。所以当我用一个键索引字典时,它总是失败,因为对象引用不相等。我无法索引的字典有什么意义?我该如何解决这个问题?
编辑:
更清楚地说,我希望能够更像 Python 字典那样使用它,其中字符串键是不可变类型,因此比较内容而不是对象引用。
.Net 中的字符串是不可变的。并且 Dictionary确实可以按您希望的方式工作:
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