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。由于其保护级别,可能无法访问。
有人知道如何解决这个问题吗?
谢谢
您的第一个问题是您在 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