我想构建一个数组,其行以字符串键入。行不需要具有相同数量的列(锯齿状数组)或在每列中具有值。我希望能够更新数组现有行中的列。
我尝试使用字典。
Dim ToolUsers as New Dictionary(Of String, Array)
Dim UserData() As String = {"", "", "", "", "", "", "", "")
Of String
允许我根据String
值访问任何特定行,但Array
是引用类型,并始终指向存储在UserData
数组中的当前值而不是值类型并将数组值存储在Dictionary
。
我查看了Array
Array
,但它似乎不允许通过密钥访问现有行或允许更新现有值。
VB.net中是否存在这样的构造?
答案 0 :(得分:0)
你可以使用Dictionary
来实现你想要的,但是使用.NET are reference types中的数组,所以你需要小心如何填充你的字典,如果你真的想要的话,不要重复使用相同的数组每个项目中的不同数据。 e.g。
' Create a dictionary from string to array of string
Dim x = New Dictionary(Of String, String())()
x("A") = New String() { "A1", "A2", "A3" }
' A : A1, A2, A3
x("A")(1) = "A2x"
' A : A1, A2x, A3
Dim y = New String() { "Y1", "Y2" }
x("Y1") = y ' points to same array as y
x("Y2") = DirectCast(y.Clone(), String()) ' shallow copy of y, which is OK since String is immutable
' A : A1, A2x, A3
' Y1 : Y1, Y2
' Y2 : Y1, Y2
y(0) = "Y1x"
' A : A1, A2x, A3
' Y1 : Y1x, Y2
' Y2 : Y1, Y2