どうも!リョクちゃです。
今回はVB.Netでリストの使い方を紹介します。
VB.Netとでは、リストを
- List
で表記されます。
これらについて紹介をしていくので使い方なんか覚えてもらえたらなと思います。
ちなみに前回のVB.Net記事についてはこちら
目次
リストの使い方 : List
リストは、下のようにあらわすことができます。
1 2 3 4 5 |
Public Class Form1 Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load Dim lstSample As List(Of String) ' リスト変数の宣言 End Sub End Class |
今回は、VisualStudio2019を使って、Windowsフォームアプリケーションのプロジェクトを作成した後のFormでコードを書いています。
宣言をしただけでは使えない……
このままではリスト変数lstSampleは使うことができません。
これを使えるようにするには、インスタンスを作成しないといけません。
インスタンス??
インスタンスとは、instanceと英語では書かれます。
意味としては“実体”を指します。
つまり、宣言したリスト変数を使えるようにするためには、
インスタンス化してあげる必要があります。
※ インスタンス化の必要がある変数において重要な手順です。
宣言しただけだと、型を用意しただけで中身がない状態です。
つまり中身を作るために、宣言した型を実体化させてあげる必要があります。
これをインスタンス化といいます。
良く説明されているのが、クッキーやたいやきを作るイメージを
例に説明されている記事や書籍を見かけます。
下の書籍なんかは自分も読んでわかりやすかったので、よければ参考にしてみてください。
インスタンス化してみる
それでは、さっそく先ほど宣言した変数をインスタンス化してみます。
1 2 3 4 5 6 |
Public Class Form1 Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load Dim lstSample As List(Of String) ' リスト変数の宣言 lstSample = New List(Of String) ' リストのインスタンス作成 End Sub End Class |
Newキーワードを使って、宣言した変数のリスト内に含める値の型を記述することで、
インスタンス化(作成)することができます。
これでようやく使える準備ができました。
値をリストに追加してみる
インスタンス化したリスト変数に値をいれていきましょう。
値は、下のように書くことで追加することができます。
1 2 3 4 5 6 7 8 9 10 11 |
Public Class Form1 Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load Dim lstSample As List(Of String) ' リスト変数の宣言 lstSample = New List(Of String) ' リストのインスタンス作成 ' リスト変数にアイテムを追加 lstSample.Add("りんご") lstSample.Add("ばなな") lstSample.Add("ぶどう") End Sub End Class |
ここでは、りんごやばなな、ぶどうを文字列型として追加しています。
このようにして値を追加して、リスト変数として使うことができるようになります。
次はこれを応用して、コントールであるコンボボックスと連携させてみようと思います。
リストの応用~コンボボックス編~
既に作成してあるプロジェクトのForm画面にコンボボックスを配置しましょう。
配置したコンボボックスにリスト変数のアイテムを追加していきます。
リスト変数のアイテムをコンボボックスに追加
リスト変数のアイテムをコンボボックスに追加するには、
1つずつコンボボックスへ追加していく必要があります。
この時に必要となる書き方が制御構文で学んだ、For Each文になります。
For Each文は下のようにして書くことができました。
これを使って、コンボボックスへアイテムを追加していきます。
コードは下のようになります。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 |
Public Class Form1 Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load Dim lstSample As List(Of String) ' リスト変数の宣言 lstSample = New List(Of String) ' リストのインスタンス作成 ' リスト変数にアイテムを追加 lstSample.Add("りんご") lstSample.Add("ばなな") lstSample.Add("ぶどう") For Each item As String In lstSample Me.ComboBox1.Items.Add(item) Next item End Sub End Class |
実行すると、下のようになります。
リストを組み合わせることで、コンボボックスに複数の値を
For Each文を使って追加することができます。
・こちらの書籍を参考にVB.Net勉強しています。