Array.Cloneメソッドを使うことで、配列を複製して同じ内容を持った配列を生成することが出来ます。 Array.Cloneメソッドの戻り値はobjectであるため、必要に応じて複製元と同じ型にキャストして使います。
Array.Cloneメソッドで1次元配列の複製を作成する
Imports System
Class Sample
Shared Sub Main()
Dim arr1() As Integer = {0, 1, 2, 3, 4}
Dim arr2() As Integer
' arr1を複製してarr2に代入
arr2 = DirectCast(arr1.Clone(), Integer())
' 複製元と複製後の配列の要素を変更
arr1(2) = 0
arr2(2) = 5
' それぞれの配列の内容を表示
For Each elem As Integer In arr1
Console.Write("{0}, ", elem)
Next
Console.WriteLine()
For Each elem As Integer In arr2
Console.Write("{0}, ", elem)
Next
Console.WriteLine()
End Sub
End Class
実行結果
0, 1, 0, 3, 4, 0, 1, 5, 3, 4,
このメソッドでは簡易コピーが行われるため、参照型を要素に持つ配列では参照のみがコピーされます。 そのため、ジャグ配列の複製を行うと、複製元と複製後のジャグ配列内における2段目以降はどちらも同一のインスタンスを参照する事になります。
Cloneメソッドと簡易コピーについてより詳しくはオブジェクトの複製で解説しています。