Vb.net 使用带字符串的Visual Basic词典

Vb.net 使用带字符串的Visual Basic词典,vb.net,dictionary,Vb.net,Dictionary,我在VisualBasic中有一个dictionary对象,我想用字符串键访问它。问题是,VisualBasic存储对字符串的引用,而不是字符串本身。因此,当我用键索引字典时,它总是失败,因为对象引用不相等。我无法索引的词典有什么意义?我如何解决这个问题 编辑: 更清楚地说,我希望能够像Python字典一样使用它,其中字符串键是不可变的类型,因此比较内容而不是对象引用。Net中的字符串是不可变的。字典是否按您希望的方式工作: Dim Store As New Dictionary(Of Stri

我在VisualBasic中有一个dictionary对象,我想用字符串键访问它。问题是,VisualBasic存储对字符串的引用,而不是字符串本身。因此,当我用键索引字典时,它总是失败,因为对象引用不相等。我无法索引的词典有什么意义?我如何解决这个问题

编辑:


更清楚地说,我希望能够像Python字典一样使用它,其中字符串键是不可变的类型,因此比较内容而不是对象引用。

Net中的字符串是不可变的。字典是否按您希望的方式工作:

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

.Net中的字符串是不可变的。字典是否按您希望的方式工作:

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

你能提供一个代码段吗?你能提供一个代码段吗?是的。。。这确实有效。奇怪的是,昨晚不适用于我的代码今天也适用于我。我不知道为什么会这样。也许我改变了什么,但我不知道是什么。现在一切都很好。很抱歉打扰您,我很高兴VB字符串是不可变的!对这确实有效。奇怪的是,昨晚不适用于我的代码今天也适用于我。我不知道为什么会这样。也许我改变了什么,但我不知道是什么。现在一切都很好。很抱歉打扰您,我很高兴VB字符串是不可变的!