VB.NET Listのサンプル

VB.NETのListのサンプルです。

確認環境
・Microsoft Visual Studio Community 2019

目次

仕組み Listクラス
初期値 要素を初期値でセットする
取得する 要素を取得する
  要素をすべて取得する(For Each文)
  指定の要素があるかを返す (Containsメソッド)
  要素数を取得する (Countメソッド)
追加する 要素を追加する (Add/Insertメソッド)
更新する 要素を置き換える
削除する 要素を削除する (RemoveAt/Removeメソッド)
  すべての要素を削除する (Clearメソッド)
ソート 要素を逆順にする(Reverseメソッド)
使用する メソッドの引数と戻り値がリストの場合
  リストの中にリストがあるサンプル
配列 リストを新しい配列にコピーする(ToArrayメソッド)

Listクラス

要素を初期値でセットする

要素を初期値でセットするサンプルです。

Module Module1
    Sub Main()
        Dim a As New List(Of String)(New String() {"赤", "黄", "青"})

        For Each b As String In a
            Console.WriteLine(b) '赤 黄 青と出力される
        Next
    End Sub
End Module

3行目は、Listクラスをインスタンス化し、かつ初期値をセットしています。
5~7行目は、For Each文で値を取得しています。

要素を取得する

要素を取得するサンプルです。

Module Module1
    Sub Main()
        Dim a As New List(Of String)
        a.Add("赤")
        a.Add("黄")
        a.Add("青")

        Console.WriteLine(a(1)) '黄と出力される

    End Sub
End Module

8行目は、(1)で要素の位置を指定して要素を取得しています。
要素の位置は、赤=0、黄=1、青=2です。

要素をすべて取得する(For Each文)

要素をすべて取得するサンプルです。

Module Module1
    Sub Main()
        Dim a As New List(Of String)
        a.Add("赤")
        a.Add("黄")
        a.Add("青")

        For Each b In a
            Console.WriteLine(b) '赤 黄 青と出力される
        Next
    End Sub
End Module

8行目は、for文ですべての要素を取得しています。

指定の要素があるかを返す (Containsメソッド)

指定の要素があるかを返すサンプルです。

Module Module1
    Sub Main()
        Dim a As New List(Of String)
        a.Add("赤")
        a.Add("黄")
        a.Add("青")

        Console.WriteLine(a.Contains("青")) 'Trueと出力される
    End Sub
End Module

8行目は、Containsメソッドで指定の要素があるかを取得しています。
ある場合trueです。

要素数を取得する (Countメソッド) 

要素数を取得するサンプルです。

Module Module1
    Sub Main()
        Dim a As New List(Of String)
        a.Add("赤")
        a.Add("黄")
        a.Add("青")

        Console.WriteLine(a.Count) '3と出力される
    End Sub
End Module

8行目は、Countメソッドで要素数を取得しています。

要素を追加する (Add/Insertメソッド)

要素を追加するサンプルです。

Module Module1
    Sub Main()
        Dim a As New List(Of String)

        a.Add("赤")
        a.Add("黄")
        a.Add("青")

        For Each b As String In a
            Console.WriteLine(b) '赤 黄 青と出力される
        Next

        a.Insert(2, "オレンジ")

        For Each b As String In a
            Console.WriteLine(b) '赤 黄 オレンジ 青と出力される
        Next
    End Sub
End Module

3行目は、Listクラスをインスタンス化しています。
5~7行目は、Addメソッドで要素を追加しています。
9~11行目は、foreach文で値を取得しています。
13行目は、Insertメソッドで位置を指定して要素を追加しています。

要素を置き換える

要素を置き換えるサンプルです。

Module Module1
    Sub Main()
        Dim a As New List(Of String)
        a.Add("赤")
        a.Add("黄")
        a.Add("青")

        a(2) = "オレンジ"

        For Each b As String In a
            Console.WriteLine(b) '赤 黄 オレンジと出力される
        Next
    End Sub
End Module

8行目は、(2)で要素の位置を指定して要素を置き換えています。
要素の位置は、赤=0、黄=1、青=2です。

要素を削除する(RemoveAt/Removeメソッド)

要素を削除するサンプルです。

Module Module1
    Sub Main()
        Dim a As New List(Of String)
        a.Add("赤")
        a.Add("黄")
        a.Add("青")

        a.RemoveAt(0)

        For Each b As String In a
            Console.WriteLine(b) '黄 青と出力される
        Next

        a.Remove("黄")
        For Each c As String In a
            Console.WriteLine(c) '青と出力される
        Next
    End Sub
End Module

8行目は、RemoveAtメソッドでインデックスを指定して削除しています。インデックスは0から始まります。
14行目は、Removeメソッドで値を指定して削除しています。

すべての要素を削除する (Clearメソッド)

すべての要素を削除するサンプルです。

Module Module1
    Sub Main()
        Dim a As New List(Of String)
        a.Add("赤")
        a.Add("黄")
        a.Add("青")
        a.Clear()

        For Each b As String In a
            Console.WriteLine(b) '出力されない
        Next
    End Sub
End Module

7行目は、Clearメソッドですべての要素を削除しています。

要素を逆順にする(Reverseメソッド)

要素を逆順にするサンプルです。

Module Module1
    Sub Main()
        Dim a As New List(Of String)
        a.Add("赤")
        a.Add("黄")
        a.Add("青")
        a.Reverse()

        For Each b As String In a
            Console.WriteLine(b) '青 黄 赤と出力される
        Next
    End Sub
End Module

7行目は、Reverseメソッドで要素を逆順にしています。

メソッドの引数と戻り値がリストの場合

メソッドの引数と戻り値がリストの場合

Module Module1
    Sub Main()
        Dim color As New List(Of String)
        color.Add("赤")
        color.Add("黄")
        color.Add("青")

        Dim b As List(Of String)
        b = printColor(color)
    End Sub

    Private Function printColor(c1 As List(Of String))
        For Each b In c1
            Console.WriteLine(b) '赤 黄 青と出力される
        Next
        Return c1
    End Function
End Module

9行目は、呼び出し元のメソッドです。引数(実引数)にリストを指定しています。戻り値もリストです。
12行目は、定義されたメソッドです。引数(仮引数)にリストがあります。戻り値もリストです。
・「c1 As List(Of String)」変数と引数の型とです。

呼び出し元のメソッドの引数の変数名(9行目のcolor)と定義されたメソッドの引数の変数名(12行目のc1)は異なっていても使用できます。

リストの中にリストがあるサンプル

リストの中にリストがあるサンプル

Module Module1
    Sub Main()
        Dim list1 As New List(Of List(Of String))

        Dim list2 As New List(Of String)
        list2.Add("赤")
        list2.Add("黄")
        list2.Add("青")

        Dim list3 As New List(Of String)
        list3.Add("red")
        list3.Add("yellow")
        list3.Add("blue")

        list1.Add(list2)
        list1.Add(list3)

        Console.WriteLine(list1(0)(0)) '赤
        Console.WriteLine(list1(0)(1)) '黄
        Console.WriteLine(list1(0)(2)) '青
        Console.WriteLine(list1(1)(0)) 'red
        Console.WriteLine(list1(1)(1)) 'yellow
        Console.WriteLine(list1(1)(2)) 'blue
    End Sub
End Module

3行目は、リストの中にリストを定義しています。
5~13行目は、通常のリストを作成しています。
15,16行目は、リストにリストを追加しています。
18~23行目は、リストの値を取得しています。

リストを新しい配列にコピーする(ToArrayメソッド)

リストを新しい配列にコピーするサンプルです。

Module Module1
    Sub Main()
        Dim a As New List(Of String)
        a.Add("赤")
        a.Add("黄")
        a.Add("青")

        Dim b = a.ToArray()

        For Each c As String In b
            Console.WriteLine(c) '赤 黄 青と出力される
        Next

        'b.Add("オレンジ") リストでないのでエラーになる
    End Sub
End Module

3~6行目は、リストを作成し値をセットしています。
8行目は、ToArrayメソッドでリストを新しい配列にコピーしています。
14行目は、addメソッドで値を追加しようとしますがリストではなく配列なのでエラーになります。

関連の記事

VB.NET 配列の仕組みと使い方のサンプル

△上に戻る