【VB.NET】配列の使い方をサンプル付で徹底解説!

悩んでる人

VB.NETで配列を使いたいけど、宣言の仕方がよく分からない

悩んでる人

配列って何種類もあるの?どれを使えばいいんだろう?

おしけん

配列は一度マスターするとめちゃくちゃ便利に使えますよ!

本記事では、VB.NETの配列について、初心者の方にも分かりやすいように丁寧に解説していきます。

サンプルコードも豊富に用意しましたので、実際に手を動かしながら学んでいただけると幸いです!

目次

【VB.NET】配列とは?

配列とは、同じデータ型の値を複数まとめて管理できる入れ物のことです。

例えば、クラスに生徒が5人いるとします。

生徒の名前を管理したいとき、こんな変数を5つ作るのは大変ですよね。

Dim name1 As String = "田中"
Dim name2 As String = "鈴木"
Dim name3 As String = "佐藤"
Dim name4 As String = "高橋"
Dim name5 As String = "渡辺"

配列を使えば、このようにスッキリまとめることができます。

Dim names As String() = {"田中", "鈴木", "佐藤", "高橋", "渡辺"}

変数が増えれば増えるほど、配列のありがたみがよく分かります!

おしけん

変数が増えれば増えるほど、配列のありがたみがよく分かります!

配列はデータをひとまとめにして管理できる、プログラミングの基本中の基本です!

【VB.NET】配列の宣言方法

VB.NETで配列を宣言する基本的な書き方は以下の通りです。

Dim 配列名(要素数 - 1) As データ型

例:要素数を指定して宣言する

' 5つの要素を持つ整数型配列を宣言
Dim scores(4) As Integer

ここで注意が必要なのが、(4) と書いたとき、要素数は5つになる点です。

VB.NETの配列は 0始まり(インデックスは0から) なので、scores(0)scores(4) の5つが使えます。

悩んでる人

え、4を指定したのに5つ?なんで?

おしけん

配列はインデックスが0から始まるので、(4) は「 0から4まで」という意味になります!

例:型ごとの宣言

Dim numbers(4) As Integer    ' 整数型
Dim names(2) As String       ' 文字列型
Dim flags(1) As Boolean      ' 真偽値型
Dim prices(3) As Double      ' 倍精度浮動小数点型

【VB.NET】配列の初期化と値の代入

配列は宣言と同時に値を設定することができます。

宣言と同時に初期化する

Dim fruits() As String = {"りんご", "みかん", "バナナ", "ぶどう"}

この書き方では、要素数を自動的に判断してくれるので、カッコの中に数字を書く必要がありません。

後から値を代入する

Dim scores(2) As Integer
scores(0) = 85
scores(1) = 90
scores(2) = 78

インデックス番号を使って、1つずつ値を代入することができます。

サンプルコード(宣言 → 代入 → 表示)

Module Module1
    Sub Main()

        ' 配列を宣言して値を代入
        Dim scores(2) As Integer
        scores(0) = 85
        scores(1) = 90
        scores(2) = 78

        ' 各要素を表示
        Console.WriteLine("1番目のスコア:" & scores(0))
        Console.WriteLine("2番目のスコア:" & scores(1))
        Console.WriteLine("3番目のスコア:" & scores(2))

        Console.ReadKey()

    End Sub
End Module

実行結果は以下のようになります。

1番目のスコア:85
2番目のスコア:90
3番目のスコア:78

配列の要素数を取得する

配列の要素数は Length プロパティで取得できます。

Module Module1
    Sub Main()

        Dim fruits() As String = {"りんご", "みかん", "バナナ"}

        Console.WriteLine("要素数:" & fruits.Length)

        Console.ReadKey()

    End Sub
End Module
実行結果:

要素数:3

また、最後のインデックス番号を取得したい場合は GetUpperBound(0) を使います。

Console.WriteLine("最後のインデックス:" & fruits.GetUpperBound(0))
実行結果:

最後のインデックス:2

おしけん

Length はよく使うので、ぜひ覚えておいてください!

配列をループ処理する

配列の中身を順番に処理したい場面は、実務でもよく出てきます。

ここでは、代表的な2つのループ処理を紹介します。

For文を使ったループ

Module Module1
    Sub Main()

        Dim fruits() As String = {"りんご", "みかん", "バナナ"}

        For i As Integer = 0 To fruits.Length - 1
            Console.WriteLine(i & "番目:" & fruits(i))
        Next

        Console.ReadKey()

    End Sub
End Module
実行結果:

0番目:りんご
1番目:みかん
2番目:バナナ

インデックス番号を使って要素にアクセスしたい場合は、For文が便利です。

For Each文を使ったループ

Module Module1
    Sub Main()

        Dim fruits() As String = {"りんご", "みかん", "バナナ"}

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

        Console.ReadKey()

    End Sub
End Module
実行結果:

りんご
みかん
バナナ

インデックスが不要で、要素を順番に処理するだけなら、For Each文の方がシンプルで読みやすいです。

おしけん

インデックスが必要ならFor文、不要ならFor Each文という使い分けが基本です!

多次元配列の使い方

VB.NETでは、2次元配列も使うことができます。

表(テーブル)のように、行と列でデータを管理したいときに便利です。

2次元配列の宣言

Dim 配列名(行数 – 1, 列数 – 1) As データ型

Module Module1
    Sub Main()

        ' 3行2列の2次元配列
        Dim matrix(2, 1) As Integer

        matrix(0, 0) = 1 : matrix(0, 1) = 2
        matrix(1, 0) = 3 : matrix(1, 1) = 4
        matrix(2, 0) = 5 : matrix(2, 1) = 6

        ' 二重ループで全要素を表示
        For i As Integer = 0 To 2
            For j As Integer = 0 To 1
                Console.Write(matrix(i, j) & " ")
            Next
            Console.WriteLine()
        Next

        Console.ReadKey()

    End Sub
End Module
実行結果:

1 2
3 4
5 6

悩んでる人

2次元配列は難しそう…

おしけん

Excelの表をイメージすると分かりやすいですよ!行と列でデータを管理する感じです。

配列のよく使うメソッド

VB.NETの配列では、便利なメソッドがいくつか用意されています。

Array.Sort:配列を並び替える

Module Module1
    Sub Main()

        Dim numbers() As Integer = {5, 2, 8, 1, 4}

        Array.Sort(numbers)

        For Each num As Integer In numbers
            Console.Write(num & " ")
        Next

        Console.ReadKey()

    End Sub
End Module
実行結果:

1 2 4 5 8

Array.Reverse:配列を逆順にする

Module Module1
    Sub Main()

        Dim numbers() As Integer = {1, 2, 3, 4, 5}

        Array.Reverse(numbers)

        For Each num As Integer In numbers
            Console.Write(num & " ")
        Next

        Console.ReadKey()

    End Sub
End Module
実行結果:

5 4 3 2 1

Array.IndexOf:要素の位置を検索する

Module Module1
    Sub Main()

        Dim fruits() As String = {"りんご", "みかん", "バナナ"}

        Dim index As Integer = Array.IndexOf(fruits, "みかん")

        Console.WriteLine("みかんのインデックス:" & index)

        Console.ReadKey()

    End Sub
End Module
実行結果:

みかんのインデックス:1

おしけん

Array.SortArray.IndexOf は実務でもよく使います!覚えておくと便利ですよ。

配列とListの違いと使い分け

VB.NETでは、配列と似たものとして List があります。

どちらを使えばいいか迷う方も多いので、違いをまとめました。

特徴配列List
要素数宣言時に固定後から追加・削除が可能
パフォーマンス高速配列よりやや遅い
書き方シンプル少し記述が増える
向いている場面要素数が決まっているとき要素数が変わるとき
Module Module1
    Sub Main()

        Dim fruits As New List(Of String)

        ' 要素を追加
        fruits.Add("りんご")
        fruits.Add("みかん")
        fruits.Add("バナナ")

        ' 要素を表示
        For Each fruit As String In fruits
            Console.WriteLine(fruit)
        Next

        Console.ReadKey()

    End Sub
End Module
おしけん

要素数が最初から決まっているなら配列、あとから追加・削除するならListが向いています!

まとめ

本記事では、VB.NETの配列について解説してきました。

最後にポイントをおさらいしておきましょう!

  • 配列は同じデータ型の値を複数まとめて管理できる
  • インデックスは 0始まり なので注意が必要
  • 要素数は Length プロパティで取得できる
  • ループ処理はFor文・For Each文どちらも使える
  • 2次元配列を使えば表形式のデータも管理できる
  • Array.SortArray.IndexOf などの便利なメソッドがある
  • 要素数が変わるならListの使用も検討しよう

配列はVB.NETを使う上で欠かせない基本の知識です。

最初は少しとっつきにくいかもしれませんが、サンプルコードを実際に動かしながら練習することで、必ず身についていきます!

ぜひ本記事を参考に、配列をマスターしてみてください!

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!
目次