0

文字列キーでアクセスしたい Visual Basic のディクショナリ オブジェクトがあります。問題は、Visual Basic が文字列自体ではなく、文字列への参照を格納していることです。そのため、キーを使用してディクショナリにインデックスを付けると、オブジェクト参照が等しくないため、常に失敗します。索引付けできない辞書のポイントは何ですか? これを解決するにはどうすればよいですか?

編集:

より明確にするために、これを Python 辞書のように使用できるようにしたいと考えています。この場合、文字列キーは不変型であるため、オブジェクト参照ではなく内容が比較されます。

4

1 に答える 1

3

.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
于 2012-08-11T05:14:00.937 に答える