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
を使っていくと良いかと思います。
要素数を気にせずに値を動的に追加したい時には、リストを使っていきましょう。
コメント