VB.NET List 使い方

VB.NETでのListの使い方について、紹介していきたいと思います。

List型は、配列ととてもよく似ています。
指定した型のデータを格納して、インデックス(何番目)を指定することで、格納したデータを取得することができます。
書き方はプログラミング言語ごとに異なりますが、VB.NETだけではなく、様々な言語で使用する型なのでそれだけ大切ということなので
是非使い方を覚えておきましょう。

それでは、さっそく使い方を見てみましょう。

Listの使い方

初期値を持たせる

Dim strList As New List(Of String)(New String() {"きりん", "ぞう", "くま"})

リストの中に格納する変数の型を指定して初期化を行います。
これで、配列と同じように0番目から順番に、0番目、1番目、2番目に値が格納されています。

Listの初期値を持たせたいときは、integerの場合も同じように書くことで使用できます。

Dim intList As New List(Of Integer)(New Integer() {1, 2, 3})

 

Add 要素を追加

先ほどは、Listを宣言した時から、要素を持たせていましたが、次は、空のListを宣言し、そこに要素を追加してみましょう。
要素を追加するには、Addを使用します。

'初期化
Dim hiroList As New List(Of String)
'リストに要素を追加
hiroList.Add("きりん")
hiroList.Add("ぞう")
hiroList.Add("くま")

これで、先ほど宣言したListと同じ内容のListが作成されました。

要素の取得

格納した要素を、取得する方法を紹介します、、と言ってもとても簡単です。

hiroList(0)

List(インデックス)で取得できます。例の場合は、0番目の要素なので、"きりん"が取得できています。

 

基本的な使い方は、以上になりますが、Listには、様々なメソッドが用意されており、使用するとListのデータを加工できるので、
紹介していきます。実際の仕事でもよくListを加工する必要があるので、覚えておきましょう。

Listの便利な加工方法

Insert 指定した位置に要素を追加

指定した位置に要素を追加したい場合は、Insertを使用します。
List.Insert(インデックス、要素の値)で、追加できます。

'初期化
Dim hiroList As New List(Of String)
'リストに要素を追加
hiroList.Add("きりん")
hiroList.Add("ぞう")
hiroList.Add("くま")
'指定した位置に要素を追加
hiroList.Insert(1, "ねずみ")

For i As Integer = 0 To hiroList.Count - 1
    Console.WriteLine(hiroList(i))
Next

結果
きりん
ねずみ
ぞう
くま

結果を見ると、"きりん"、"ぞう"の間に"ねずみ"が格納されました。

Contains リストの要素 存在確認

リストの要素に指定した値が格納されているか確認する方法を紹介します。
List.Contains(要素の値)とすることで、要素があればTrue、なければFalseが返却されます。

Dim hiroList As New List(Of String)(New String() {"きりん", "ぞう", "くま"})

If hiroList.Contains("きりん") = True Then
    MessageBox.Show("きりんは存在します")
End If

Containsは覚えておくととても便利ですよ。

 

Clear Listのクリア

Listの要素を全て削除する方法を紹介します。List.Clear()で削除できます。

hiroList.Clear()

 

RemoveAt 指定した要素のみ削除

Listの指定した要素のみ削除する方法を見てみましょう。
List.RemoveAt(インデックス)で指定した要素を削除することができます。

Dim hiroList As New List(Of String)(New String() {"きりん", "ぞう", "くま"})
hiroList.RemoveAt(0)

If hiroList.Contains("きりん") = True Then
    MessageBox.Show("きりんは存在します")
Else
    MessageBox.Show("きりんは存在しません")
End If

結果
ぞう
くま

なので、"きりんは存在しません"とメッセージが表示されます。

Sort 要素の並べ替え 昇順

Listの内容を昇順に並べたい時の方法を紹介します。
昇順とは、小さい値から大きい値へ並べ替えることです。
List.Sort()

Dim intList As New List(Of Integer)(New Integer() {3, 2, 1})
intList.Sort()
For i As Integer = 0 To intList.Count - 1
    Console.WriteLine(intList(i))
Next

初期値は、3,2,1で格納していましたが、結果は1,2,3で出力されます。

 

Reverse 要素の並べ替え 降順

Listの内容を降順に並べたい時の方法を紹介します。
昇順とは、大きい値から小さい値へ並べ替えることです。
List.Reverse()

Dim intList As New List(Of Integer)(New Integer() {1, 2, 3})
intList.Reverse()

For i As Integer = 0 To intList.Count - 1
    Console.WriteLine(intList(i))
Next

初期値は、1,2,3で格納していましたが、結果は3,2,1で出力されます。

 

Listを入れ子にする

最後に、Listの要素をListにする方法を紹介します。
Listの要素をListにするので、イメージとしては、2次元配列みたいな感じになります。
少しややこしいと思うので、初心者の方は、ふーんくらいで大丈夫ですよ。

それでは、さっそく例を見てみましょう。

Dim listMain As New List(Of List(Of String))
Dim hiroList As New List(Of String)(New String() {"きりん", "ぞう", "くま"})
Dim hiroList2 As New List(Of String)(New String() {"1", "2", "3"})

listMain.Add(hiroList)
listMain.Add(hiroList2)

For i As Integer = 0 To listMain.Count - 1
    For k As Integer = 0 To listMain(i).Count - 1
        Console.WriteLine(listMain(i)(k))
    Next
Next

結果

きりん
ぞう
くま
1
2
3

解説
1行目:Dim listMain As New List(Of List(Of String))で List型の要素がListの変数を作成しています。(親要素)
2~3行目:格納するリストの型です。(子要素)
4~5行目:親リストに子リストを格納

こんな感じで、Listを入れ子にして使用することができます。

まとめ

今回はListを紹介しました、Listはとてもべんりなので是非参考にしてください。

Listは、データの加工がしやすいので、とてもおすすめです。

Listの入れ子については、わかりにくいかもしれません。わかりにくい人は、DataTable型の方が理解しやすいかもしれないです。

是非こちらも参考にしてみてください。

 

VB.NETの記事一覧

おすすめの記事