配列処理

[VB.NET] Redimで配列の大きさを変更する方法

今回は、VB.NETでRedimを使って配列の大きさを変更する方法についてご紹介します。

Redimとは

VB.NETでは、配列のサイズは通常固定長ですが、ReDimステートメントを使うと配列のサイズを動的に変更できます。

このときPreserveをつけるかどうかで、既存データを保持するかどうかを選ぶことができます。

例として以下の2種類があります。

  • ReDim :既存データを破棄し、新しいサイズの配列を作る
  • ReDim Preserve :既存データを保持しつつ、配列サイズを変更する

基本的な使い方

まずは、ReDimによって配列のサイズを変更する方法を見てみましょう。

なお、ReDimにはPreserveなしとありの2種類が存在します。

ReDim(Preserveなし)の例

Preserveがない場合は既存データがすべて初期化されるため、データを保持する必要がないケースで使用します。

実行結果

要素数:6
0
0
0
0
0
0

ReDim Preserveの例

Preserveを指定すると、既存の要素を保持したままサイズだけ拡張できます。

実行結果

要素数:6
1
2
3
0
0
0

実用的な具体例

ここでは、多次元配列や動的な拡張例を見てみます。

多次元配列でのサイズ変更

多次元配列でReDim Preserveを使う際は、最後の次元のみ変更できます。

実行結果

行数:2
列数:4
1 2 0 0
3 4 0 0

動的な拡張とデータ保持

配列に新たな要素を追加するたびにサイズを増やしたい場合は、ReDim Preserveを繰り返し使う方法があります。

実行結果

要素数:2
初期データ
追加データ

注意点

ReDimを使う際は、以下の点に注意するとよいでしょう。

  • データの破棄:Preserveを付けないReDimを行うと既存のデータは失われます。
  • 多次元配列の制限:複数次元の場合、最後の次元のみPreserveでサイズ変更可能です。
  • パフォーマンス:頻繁にサイズ変更が必要な場合、List(Of T)などの使用を検討すると効率的です。
  • 初期化:新しい要素は型ごとの既定値で初期化されるため、必要なら再代入が必要です。

まとめ

VB.NETではReDimによって配列のサイズを動的に変更できます。

ReDim Preserveを使えば既存データを保持したまま拡張できるため、用途に応じて使い分けが大切です。

多次元配列やパフォーマンスにも配慮し、より柔軟に配列操作を行いましょう。