我试图用4个键填充字典,每个键值是一个多维数组(13,7)。第一个键和数组完美填充。当第二个键填充时,第一个键和第二个键的值都具有第二个数组迭代值,并且这将持续下一个2个,直到我有4个键和所有相同的值。我已经使用手表逐行验证,以验证每个数组是否具有唯一值,并且每个键都具有唯一值。任何帮助将不胜感激。
Dim BitMap As New Dictionary(Of String, String(,))
For y = 0 To strDiffEQName.Length - 1
For x = 0 To 1
Dim intFirst As Integer = Array.IndexOf(rowvalue, "[" & strSTKName & "_" & strSendRecv(x) & "_" & strDiffEQName(y) & "]") 'Find first string in Array (Start Block)
Dim intSecond As Integer = Array.LastIndexOf(rowvalue, "[" & strSTKName & "_" & strSendRecv(x) & "_" & strDiffEQName(y) & "]") 'Find second string in Array (Stop Block)
Dim intNum As Integer = 0
For i As Integer = intFirst + 1 To intSecond - 1 'Loop through array betwween start and stop block
Dim strHolder() As String 'Array that will temporary hold values until transfered to the strString Array
strHolder = rowvalue(i).Split(","c) 'load data between commas to the temporary array
ReDim Preserve strHolder(strHolder.Length - 1) 'Increase rows in array by one
For k As Integer = 0 To 7
strString(intNum, k) = strHolder(k) 'Load temp data into multi-dimensional array
Next
intNum = intNum + 1 'Increment to next row in Multi-dimensional array
Next
BitMap.Add(strSendRecv(x) & "_" & strDiffEQName(y), strString) 'Transfer Multi-dimensional array to Dictionary
Next
Next
答案 0 :(得分:0)
如前所述,数组是引用类型。这无法改变。如果要向Dictionary
添加四个项目,则必须创建四个数组。就这么简单。如果您只创建一个数组并添加四次,那么显然您只会看到一组数据,而不管您查看的Dictionary
中的项目是什么。
考虑一下。让我们说你正在列出一个人的名字和他们穿着的衬衫的颜色。我穿着一件红色的衬衫,然后拿下我的细节。然后,我再次穿上蓝色衬衫,再次完成我的细节。如果你从第一个项目打电话给我的名字,你是否会期待我再次穿着一件红色衬衫,即使我把它脱下来穿上蓝色衬衫?我只有一个人,不管你把我的名字放在名单上多少次,所以无论你用什么列表项来选择我,你都会看到我穿的最后一件颜色的衬衫。这就是对象在现实世界中的工作方式以及对象在编程中的工作方式。