List(Of String)を使いこなそう!
VisualBasicには列という考え方があり、連結して関係するデータを一つのリストの中に組み込むことができる機能がある。
例えば、顧客データがあったとして、いちいち性別、身長、体重、血液型、趣味、出身地のデータを別々に保存するよりは、一連のリストととしてまとめてしまったほうが効率的な場合がある。下記はリストを利用したサンプルである。
'まず、定義
Dim List1 As New List(Of String)
'リストに要素を追加
List1.Add("A")
List1.Add("B")
List1.Add("C")
'リストの一つ目になにが入っているのかを確認してみる
MessageBox.Show(List1(0))
'指定した位置に無理やりデータを入れ込む
List1.Insert(1, "BB")
‘messagebox.showを利用し、リストの中身を見てみる。
For i As Integer = 0 To List1.Count - 1
MessageBox.Show(List1(i))
Next
'結果は下記のようになる
'A
'BB
'B
'C
'指定された文字が入っているのかどうかを確認する
If List1.Contains("BB") = True Then
MessageBox.Show("BBは入っております")
End If
'list1にはデータは何個、入っているのかを確認する
Dim listnumber As Integer
listnumber = List1.Count
MessageBox.Show("データ個数:" & listnumber)


*************************************************************************:
chatGPTによると、arrayを利用するよりlistを利用した方がよいらしい。理由は サイズ変更が簡単ということである。Array はサイズが固定で、一度作成したら後から要素数を自由に変えることがでない。(ReDim を使うとコピーが発生するので非効率)。List(Of T) はサイズが可変で、.Add() や .Remove() を使って簡単に要素の追加・削除ができる、とのことだ。
なお、他クラスへデータを飛ばす方法は下記を参照ください。
Public Class Form1
Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
Dim List1 As New List(Of String)
List1.Add("A")
List1.Add("B")
List1.Add("C")
Dim ts As New transaction
ts.check(List1)
End Sub
End Class
Public Class transaction
Public Sub check(ByVal list As List(Of String))
MessageBox.Show(list(1))
End Sub
end Class