我有一個Visual Basic中的字典對象,我想用字符串鍵訪問它。問題是,Visual Basic存儲對字符串的引用,而不是字符串本身。所以當我用鍵索引字典時,它總是失敗,因爲對象引用不相等。我無法索引的字典有什麼意義?我該如何解決這個問題?使用帶字符串的Visual Basic詞典
編輯:
更清楚,我希望能夠利用這個更像是一個Python字典,其中字符串鍵是不可變的類型,因此內容而不是對象的引用進行比較。
我有一個Visual Basic中的字典對象,我想用字符串鍵訪問它。問題是,Visual Basic存儲對字符串的引用,而不是字符串本身。所以當我用鍵索引字典時,它總是失敗,因爲對象引用不相等。我無法索引的字典有什麼意義?我該如何解決這個問題?使用帶字符串的Visual Basic詞典
編輯:
更清楚,我希望能夠利用這個更像是一個Python字典,其中字符串鍵是不可變的類型,因此內容而不是對象的引用進行比較。
.NET中的字符串ARE不可變。和字典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
是的......這確實有效。奇怪的是,昨天晚上不適合我的代碼今天爲我工作。爲什麼這是我不確定。也許我改變了一些東西,但我無法弄清楚什麼。現在一切正常。抱歉打擾你,我很高興VB字符串是不可變的! – 2012-08-11 18:03:17
你能提供代碼段嗎? – Carth 2012-08-11 05:09:14