|
■No68297 (ZZZ さん) に返信
> VB.Net2008で配列の割り込みをしたいのですが、可能でしょうか?
ここでいう配列の「割り込み」というものが、たとえば、
Dim x(3) As Integer
x(0) = 10
x(1) = 20
x(2) = 30
x(3) = 40
に対して、x(1) と x(2) の間に 25 という値を挿入して
x(0) = 10
x(1) = 20
x(2) = 25
x(3) = 30
x(4) = 40
という形でずらしたいという意図なのだとすれば、配列にその機能はありません。
どうしても必要なら、他の配列を用意して、そこに再確保するという手があります。
Dim y(UBound(x) + 1) As Integer '一つ大きい配列
Array.Copy(x, 0, y, 0, 2) 'x(0)〜x(1)をy(0)〜y(1)にコピー
y(2) = 25 'y(2)をセット
Array.Copy(x, 2, y, 3, 2) 'x(2)〜x(3)をy(3)〜y(4)にコピー
もし、挿入・削除・並び替えなどを頻繁に行うのであれば、配列よりも
List(Of )クラスの方が得意なので、そちらを利用されてみてはいかがでしょうか。
With New List(Of Integer)(x) '配列 x を List(Of )に変換
.Insert(2, 25) '2番目の位置に、値25を挿入
x = .ToArray() '中身を配列に変換して x に書き戻す
End With
|