VB.NETで配列に要素を追加する方法!(ReDim)

VB.NET VB.NET

VB.NETで配列に要素を追加する方法について書いています。

VB.NETの配列も最初に要素数を指定して使います。
要素数を気にせずに動的に使いたい場合には、Listを使うようにしましょう。

配列に要素を追加する

配列を宣言して要素を追加するには、下記のように追加します。

' 要素数3の文字列型配列を宣言
Dim fruits(2) As String

' 配列に要素を追加
fruits(0) = "apple"
fruits(1) = "banana"
fruits(2) = "orange"

For Each fruit As String In fruits
    Console.WriteLine(fruit)
Next

最初に要素数が3つの文字列のfruits配列を作成しています。

その後に配列に対して、要素を追加しています。
要素は0番目からです。3つの要素を追加した後に、for each文で要素を出力してみました。

配列に追加できる要素数の上限は、指定した要素数までで、ここでは3つの要素までです。
結果、下記のように出力されます。

apple
banana
orange

配列作成と同時に要素を初期化する

配列作成と同時に要素を初期化することもできます。

' 配列作成と同時に要素を初期化する
Dim fruits() As String = {"melon", "peach", "apple"}

For Each fruit As String In fruits
    Console.WriteLine(fruit)
Next

fruits配列の宣言と同時に3つの要素で、配列の要素を初期化しました。
fruits配列の要素数は3つなので、「fruits(3) = "banana"」のように4つ目に追加することはできません。

値を出力すると、下記のように初期化できたことが確認できました。

melon
peach
apple

ReDimで配列の要素数を再定義

ReDimキーワードを使うことで、配列の要素数を再定義できます。
単純にReDimを使った場合には、要素数は増えますが、配列の要素(値)は消えてしまいます。

下記は数値配列の例です。

Dim numbers() As Integer = {1, 7, 10}

For Each number As Integer In numbers
    Console.WriteLine(number)
Next

numbers配列の宣言と同時に3つの数値で、配列を初期化しました。
まずこれを出力してみると、下記のように値が入っていることが確認できます。

1
7
10

ReDimを使うと、配列の要素数が変わりますが、値が初期化されます。
数値の場合には「0」になって、文字列の場合は空白が入ります。

先ほどのコードに下記のように、コードを追加します。

ReDim numbers(5)

For Each number As Integer In numbers
    Console.WriteLine(number)
Next

出力結果を確認すると、配列の要素数が6個に増えましたが、下記のように全部「0」になりました。

0
0
0
0
0
0

Redim Preserveで配列の要素を維持

Redim Preserveを使うと、配列の値を維持したまま、配列のサイズを変更できます。

先ほどのコードをReDimしていた箇所を、ReDim Preserveに書き換えます。

Redim Preserve numbers(5)

For Each number As Integer In numbers
    Console.WriteLine(number)
Next

そうすると、出力結果が下記のようになりました。

1
7
10
0
0
0

元の配列の要素を残したまま、要素数が増えていることが確認できました。
配列の値を保持して、要素数を増やしたい時にはこちらを使うと良いかと思います。

新しく値を追加したい時には、増えた要素番号に値を追加していくと良いでしょう。

終わりに

今回はVB.NETで配列に要素を追加する方法について書きました。

配列は要素数が決まっているので、単純に追加していくことはできませんでした。
配列の値を残したまま、追加したい時にはRedim Preserveを使っていくと良いかと思います。

要素数を気にせずに値を動的に追加したい時には、リストを使っていきましょう。

コメント

タイトルとURLをコピーしました