VB.NETのListクラスの使い方は?サンプルコードも解説!

「VB.NETのListクラスって、どんな時に使うんだろう?」
「VB.NETのListクラスの使い方や、具体的なサンプルコードが知りたいな」
Listクラスは、使いこなすととても便利なジェネリッククラスです。初めて使う場合、具体的な使い方をイメージしにくい人も多いのではないでしょうか。
そこで今回は、VB.NETのListクラスの使い方・サンプルコードについて解説します。
- システム
エンジニア - VB.NETのListクラスを詳しく知りたいです。
- プロジェクト
マネージャー - VB.NETのListクラスは覚えておくと便利なので、ぜひ覚えて使いこなしましょう。
※この記事はVisual Basicの16.0で動作確認しました。
VB.NETのListクラスとは?
VB.NETのListクラスは、ジェネリッククラスです。ジェネリッククラスは、型引数を持つクラスのことです。
言葉だけだとわかりづらいので具体的な使い方を解説します。Listクラスの使い方は以下の通りです。
1
|
Dim 変数名 As New List(Of 型名)
|
Listの中には、String、Integerなどの型名を入れます。また以下のように値とセットで宣言もできます。
1
|
Dim 変数名 As New List(Of 型名)(New 型名() {値1,値2,値3,…値n})
|
先ほどの書き方に続いて、「(New 型名() {値1,値2,値3,…値n})」を入れるだけです。一文が少し長くなりますが、値が決まっている場合はおすすめです。
【サンプルコード付き】VB.NETのListクラスの使い方
ここからはサンプルコードをもとにListクラスの使い方を解説します。
1.インスタンス化・初期値セット
まず、インスタンス化・初期値セット時のサンプルです。サンプルコードをご紹介します。
1
2
3
4
5
6
|
Module Program
Sub Main(args As String())
'Listクラスを宣言 + 初期値をセット
Dim fruits As New List(Of String)(New String() {"apple", "orange", "banana"})
End Sub
End Module
|
サンプルでは、String型のListクラスを宣言しています。変数名を「fruits」とし、値には「apple」「orange」「banana」を入れています。
2.インデックス指定で値を取得
次に、値を取得する方法を解説します。具体的な使い方は、以下の通りです。
1
2
3
4
5
|
'Listクラスを宣言 + 初期値をセット
Dim 変数名 As New List(Of 型名)(New 型名() {値1,値2,値3,…値n})
'インデックスを指定して値をログに出力
Console.WriteLine(変数名(インデックス))
|
サンプルコードは、以下の通りです。
1
2
3
4
5
6
7
8
9
10
11
|
Module Program
Sub Main(args As String())
'Listクラスを宣言 + 初期値をセット
Dim fruits As New List(Of String)(New String() {"apple", "orange", "banana"})
'Listクラスを宣言 + 初期値をセット
Console.WriteLine("インデックスが「0」の値:" & fruits(0))
Console.WriteLine("インデックスが「1」の値:" & fruits(1))
Console.WriteLine("インデックスが「2」の値:" & fruits(2))
End Sub
End Module
|
実行結果:
「fruits(0)」のように、変数名(インデックス)を指定して値が取得できています。このように、値を簡単に取得できるのです。
3.インデックス指定で値を変更
次に、インデックスを指定した値の変更方法を解説します。使い方は、以下の通りです。
1
2
3
4
5
|
'Listクラスを宣言 + 初期値をセット
Dim 変数名 As New List(Of 型名)(New 型名() {値1,値2,値3,…値n})
'インデックスを指定して値を変更
変数名(インデックス) = 変更する値
|
先ほど取得した時と同じように、左辺に「変数名(インデックス)」を指定します。サンプルコードは以下の通りです。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
|
Module Program
Sub Main(args As String())
'Listクラスを宣言 + 初期値をセット
Dim fruits As New List(Of String)(New String() {"apple", "orange", "banana"})
'変更前の値をログに出力
Console.WriteLine("変更前の値:" & fruits(0))
'インデックスが0の値を「peach」に変更
fruits(0) = "peach"
'変更後の値をログに出力
Console.WriteLine("変更後の値:" & fruits(0))
End Sub
End Module
|
実行結果:
変更前と変更後の値が変わっています。このように、簡単に値を変更できます。
ArrayListとListの違いは?
ここまで、Listクラスの使い方を解説してきました。Listと似ている名前にArrayListがあります。
使い方が混乱してしまう人もいるので、ここで違いを覚えておきましょう。
ArrayListは、「代入する値」ごとに「型」が変わります。そのため以下のように、「数値」「文字列」と異なる型の値を入れることも可能です。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
|
Module Program
Sub Main(args As String())
'Listクラスを宣言 + 初期値をセット
Dim arrUserInfo = New ArrayList()
arrUserInfo.Add(1)
arrUserInfo.Add("太郎")
arrUserInfo.Add("男性")
'要素数分値を出力
For Each item In arrUserInfo
Console.WriteLine(item)
Next
End Sub
End Module
|
実行結果:
上記のように複数の型の値を代入できます。型が事前に決まっている場合はListクラスを使う方が安全でしょう。
VB.NETで使える複数の値を扱う2つの方法とは?
複数の値を扱う方法は他にもあります。具体的に言うと以下2つは使い方を覚えておくと良いでしょう。
1. 配列
2. 構造体
それぞれの使い方やサンプルコードを見たい方は以下がおすすめです。
>>> 【VB.NET入門】配列の使い方まとめ!基礎から応用まで徹底解説
>>> VB.NETの構造体の使い方は?クラスとの違いやサンプルも解説!
まとめ
今回はVB.NETのListクラスの使い方を解説しました。
Listクラスは複数の値を扱うときによく使います。サンプルコードを実際に書いて、実行してみるのがおすすめです。
ぜひ手を動かして、コードを書いてみてくださいね。
FEnet.NETナビ・.NETコラムは株式会社オープンアップシステムが運営しています。
株式会社オープンアップシステムはこんな会社です
秋葉原オフィスには株式会社オープンアップシステムをはじめグループのIT企業が集結!
数多くのエンジニアが集まります。

-
スマホアプリから業務系システムまで
スマホアプリから業務系システムまで開発案件多数。システムエンジニア・プログラマーとしての多彩なキャリアパスがあります。
-
充実した研修制度
毎年、IT技術のトレンドや社員の要望に合わせて、カリキュラムを刷新し展開しています。社内講師の丁寧なサポートを受けながら、自分のペースで学ぶことができます。
-
資格取得を応援
スキルアップしたい社員を応援するために資格取得一時金制度を設けています。受験料(実費)と合わせて資格レベルに合わせた最大10万円の一時金も支給しています。
-
東証プライム上場企業グループ
オープンアップシステムは東証プライム上場「株式会社オープンアップグループ」のグループ企業です。
安定した経営基盤とグループ間のスムーズな連携でコロナ禍でも安定した雇用を実現させています。
株式会社オープンアップシステムに興味を持った方へ
株式会社オープンアップシステムでは、開発系エンジニア・プログラマを募集しています。
年収をアップしたい!スキルアップしたい!大手の上流案件にチャレンジしたい!
まずは話だけでも聞いてみたい場合もOK。お気軽にご登録ください。


新着案件New Job
-
開発エンジニア/東京都品川区/【WEB面談可】/在宅ワーク
月給29万~30万円東京都品川区(大崎駅) -
遠隔テストサービス機能改修/JavaScript/東京都港区/【WEB面談可】/テレワーク
月給45万~60万円東京都港区(六本木駅) -
病院内システムの不具合対応、保守/東京都豊島区/【WEB面談可】/テレワーク
月給30万~30万円東京都豊島区(池袋駅) -
開発/JavaScript/東京都豊島区/【WEB面談可】/テレワーク
月給50万~50万円東京都豊島区(大塚駅) -
債権債務システム追加開発/東京都文京区/【WEB面談可】/在宅勤務
月給62万~67万円東京都文京区(後楽園駅) -
PMO/東京都豊島区/【WEB面談可】/在宅勤務
月給55万~55万円東京都豊島区(池袋駅)