Arrays 如何将一个数组的特定项分配给另一个数组的特定项?

Arrays 如何将一个数组的特定项分配给另一个数组的特定项?,arrays,vb.net,Arrays,Vb.net,我有以下代码: Dim arrInputData As Double() = New Double(intGlobalHistory) {} Dim arrOutputData As Double() = New Double(0) {} Dim arrInputArray As Double()() = New Double(intGlobalStepping)() {} Dim arrOutputArray As Double()() = New Double(intGlobalStepp

我有以下代码:

Dim arrInputData As Double() = New Double(intGlobalHistory) {}
Dim arrOutputData As Double() = New Double(0) {}

Dim arrInputArray As Double()() = New Double(intGlobalStepping)() {}
Dim arrOutputArray As Double()() = New Double(intGlobalStepping)() {}

For intStepping As Integer = 0 To intGlobalStepping
    For intHistory As Integer = (intGlobalHistory + 1) To 1 Step -1
        arrInputData(intHistory - 1) = dblSomeInputFactor + CDbl(intHistory)
    Next intHistory

    arrOutputData = New Double() {dblSomeOutputFactor + CDbl(intStepping)}

    arrInputArray(intStepping) = arrInputData
    arrOutputArray(intStepping) = arrOutputData
Next intStepping
但是,当我将arrInputArray中的特定项指定给arrInputData时:

    arrInputArray(intStepping) = arrInputData
arrInputArray变量中的所有其他项也会更改,以反映arrInputData变量中的新值

我做错了什么?我只想更改arrInputArray中的特定项,而保留所有其他项不变


谢谢

这是因为您使用的是
arrInputData
,它是一个数组(引用类型),在下一次迭代中会被覆盖。如何在循环中初始化
arrInputData
,与您为
arrOutputData
所做的相同?谢谢!您能否提供一个示例,因为我需要arrInputData的所有n项包含信息,以相反的顺序填写,然后将这些信息分配给arrInputArray中的特定项。谢谢首先,您可以在for循环中执行
arrInputData As Double()=New Double(intGlobalHistory){}
。按照您所说的,在
intStepping
循环中初始化
arrInputData
,效果非常好。你就是那个人。无法标记为答案,因为这是一条评论,但是。。。谢谢在任何情况下,请记住,
arrInputArray(intStepping)=arrInputData
可能并不是您想要的。例如:如果在此行之后写入
arrInputArray(intStepping)(0)=111.0
arrInputData(0)
也将采用111.0值。也就是说:您没有将值从
arrInputData
复制到
arrInputArray(intStepping)
,而是链接两个数组(其中一个数组中的任何修改也将应用于另一个数组)。为了避免这种情况,您应该复制值或分配数组的新实例(例如,
arrInputArray(0)=arrInputData.Clone()
)。