VB.net密钥数组

时间:2015-02-05 22:26:07

标签: arrays vb.net string key

我想构建一个数组,其行以字符串键入。行不需要具有相同数量的列(锯齿状数组)或在每列中具有值。我希望能够更新数组现有行中的列。

我尝试使用字典。

Dim ToolUsers as New Dictionary(Of String, Array)
Dim UserData() As String = {"", "", "", "", "", "", "", "")

Of String允许我根据String值访问任何特定行,但Array是引用类型,并始终指向存储在UserData数组中的当前值而不是值类型并将数组值存储在Dictionary

我查看了Array Array,但它似乎不允许通过密钥访问现有行或允许更新现有值。

VB.net中是否存在这样的构造?

1 个答案:

答案 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