提问人:user3799201 提问时间:5/26/2023 更新时间:5/27/2023 访问量:47
将“number”转换为“variable name”
convert "number" to "variable name"
问:
如何将数字“转换”为变量名称?
好的,所以我通过网络从外部来源接收一个数字和一个值。有 aprox 600 号码。 所以现在我需要把这个值放到我的程序中的变量中。 我可以使用一个长选择案例来查找数字,然后将发送的值存储在相应的变量中。 或者,还有其他方法吗?就像将所有变量名称存储在数组中与数字对应的位置,然后从数组中获取变量名称并将接收到的值设置为该变量?
Sub WriteToMyVars(varNumber, val)
Select varNumber
Case "100"
MyVarName1 = val
Case "101"
MyVarName2 = val
Case "102"
MyVarName3 = val
'etc etc
End Select
End Sub
'or -----------------------------------
Dim a(600) As String
a(100) = "MyVarName1"
a(101) = "MyVarName2"
a(102) = "MyVarName2"
'etc etc
Sub WriteToMyVars(varNumber, val)
a(varNumber) = val 'this won't work I know, it'll put the val in the array instead of the varname, but something like this would be way shorter than the above
End Sub
答:
0赞
Michael Foster
5/26/2023
#1
也许你想要一个?Hashtable
Dim a As New Hashtable
a(varNumber) = val
或者,正如 Filburt 所提到的,如果您知道数据类型,则可以使用 a。速度更快,并取代了 .如果是一个整数并且是一个字符串,那么它将是:Dictionary
Dictionary
Hashtable
varNumber
val
Dim a As New Dictionary(Of Integer, String)
a.Add(varNumber, val)
此线程讨论了差异: .NET HashTable 与字典 - 字典可以一样快吗?
评论
0赞
Craig
5/31/2023
我建议不要对遗留代码以外的任何内容使用 a,因为它存储所有内容,因此它需要强制转换才能转换回原始类型。Hashtable
Object
0赞
Michael Foster
5/31/2023
@Craig,一个有效的观点。你能告诉我在这种情况下应该使用什么数据类型吗?val
Dictionary
评论