clustMember(0, 0) = "1,2,3,4,"
clustMember(0, 1) = Nothing
clustMember(0, 2) = "5,6,7,8,9,"
clustMember(0, 3) = Nothing
clustMember(1, 0) = "1,2,3,4,"
clustMember(1, 1) = "5,6,7,8,9,"
clustMember(1, 2) = Nothing
clustMember(1, 3) = Nothing
clustMember(2, 0) = "1,2,3,4,6,9,"
clustMember(2, 1) = "5,7,8,"
clustMember(2, 2) = Nothing
clustMember(2, 3) = Nothing
clustMember(3, 0) = Nothing
clustMember(3, 1) = "1,2,3,4,5,6,8,"
clustMember(3, 2) = "7,9,"
clustMember(3, 3) = Nothing
pmax = 3
xini = 3
For i As Integer = 1 To pmax - 1
For j As Integer = 0 To xini - 1
If clustMember(i, j) <> Nothing Then
lastSolution(i, j) = clustMember(i - 1, j)
End If
Next
Next
尝试将数据从clustMemBer传递到lastSolution时遇到问题。当j的值为0和1时工作正常。但是当j的值为2时,值为clustMember无法移动到lastSolution。当我跟踪代码时,我发现当j的值为2时,就会出现这样的警告“这个表达式的值可能不正确。由于没有声明j,因此无法对其进行评估。由于它可能无法访问保护等级。“
有谁知道如何解决这个问题?
谢谢
答案 0 :(得分:1)
你的第一个问题是你在i = 1
而不是i = 0
开始外循环,因此你正在跳过If clustMember(i, j) <> Nothing Then
前四项的条件:
clustMember(0, 0) = "1,2,3,4,"
clustMember(0, 1) = Nothing
clustMember(0, 2) = "5,6,7,8,9,"
clustMember(0, 3) = Nothing
其次,如果您不在第一项上,则只能移回一项,因此请检查这是否是第一次通过外部循环将代码更改为:
For i As Integer = 0 To pmax - 1
For j As Integer = 0 To xini - 1
If clustMember(i, j) <> Nothing Then
If i > 0 Then
lastSolution(i, j) = clustMember(i - 1, j)
Else
lastSolution(i, j) = clustMember(i, j)
End If
End If
Next
Next