配列処理

[VB.NET] 配列に要素を追加する方法

今回は、VB.NETで配列に要素を追加する方法についてご紹介します。

VB.NETの配列は、宣言時にサイズを固定する仕組みです。

そのため、後から新たな要素を追加しようとしても、直接的にサイズを変更することはできません。

しかし、ReDim PreserveArray.Resizeといった構文、あるいはList(Of T)の活用など、複数の方法を使うことで配列に要素を拡張できます。

ここでは、代表的な手法と具体的なサンプルコードについて解説します。

配列に要素を追加する基本概念

VB.NETの配列はサイズが固定であるため、新しい要素を「追加」するというより「サイズを拡張」して再度作り直すイメージになります。

以下のような方法が存在します。

  • ReDim Preserve:既存の要素を維持したまま配列のサイズを再定義する
  • Array.Resize:.NET Frameworkに用意されているメソッドを利用して配列サイズを変更する
  • List(Of T):動的にサイズが変動するコレクションを利用する
  • 新しい配列を作成し、コピー:自力で配列を用意し、要素をコピーして拡張する

これらのアプローチを使い分けることで、効率的かつ可読性の高い配列操作が可能になります。

配列を拡張する方法 (1) ReDim Preserve

ReDim Preserveを使うと、既存の配列の中身を保持したままサイズを変更できます。

ただし、拡張可能なのは最終次元のみなので、多次元配列のサイズ変更には制限があります。

実行結果

1
2
3
4

ReDim Preserveはシンプルですが、要素のサイズを変更するたびに内部で新しい配列を生成し、内容をコピーしています。

大規模な配列や頻繁な追加がある場合は、パフォーマンスに注意が必要です。

配列を拡張する方法 (2) Array.Resize

Array.Resizeを使うと、.NET Frameworkの標準機能として同様の処理が行えます。

処理内容は実質的にReDim Preserveと同様ですが、コードが分かりやすくなる利点があります。

実行結果

1
2
3
4

このメソッドも内部で新たな配列を生成してコピーしているため、サイズ変更のコストには注意が必要です。




配列を拡張する方法 (3) List(Of T) を利用する

頻繁に要素を追加・削除する場合は、List(Of T)を使うことでパフォーマンスと可読性を向上できます。

List(Of T)は動的な配列のようなものなので、Addメソッドで簡単に要素を追加できます。

実行結果

1
2
3
4

List(Of T)は内部で配列を管理しているため、要素が増えると自動的に拡張されます。

加えて、コードの見通しもよいため、多くの場合は配列よりList(Of T)の活用がおすすめです。

配列を拡張する方法 (4) 新しい配列を作成してコピー

手作業で新しい配列を作り、Array.Copyなどを利用して要素をコピーする方法です。

元の配列を上書きする柔軟な処理が可能ですが、コード量が増えるのがデメリットです。

実行結果

1
2
3
4

独自のロジックを組み込みたい場合に有用ですが、基本的にはReDim PreserveArray.Resize、またはList(Of T)のほうが手軽です。

まとめ

VB.NETの配列はサイズが固定ですが、様々な手段で要素を拡張できます。

性能や可読性を考慮して、目的に合った方法を選択することが大切です。

動的な処理が必要な場合には、List(Of T)の活用を積極的に検討すると便利です。