代表者の戯言

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)


データ例1
データ例2

*************************************************************************:

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