配列処理

[VB.NET] Listクラスの使い方と具体例

今回は、VB.NETのListクラスの使い方と具体例をご紹介します。

Listクラスとは

VB.NETのList(Of T)は、要素の型を指定して動的にサイズが変化する配列のような仕組みを提供する、ジェネリックコレクションです。

内部的には配列を利用しており、要素数が増える場合は自動的に容量を拡張してくれます。

型を指定することで、格納できる要素の型を限定し、誤った型を入れてしまうミスを防止しながら効率的なコレクション操作を実現します。

このように、可変長かつ型安全な仕組みを兼ね備えているため、多くのシーンで柔軟に使われています。

Listクラスの基本的な使い方

Listクラスを使う際は、System.Collections.Generic名前空間に含まれているので、あらかじめインポートしておくと便利です。

上記のコードでは、Addメソッドで要素を追加し、RemoveRemoveAtで要素を削除しています。

Sortを使えば昇順にソートでき、Containsで特定の値が含まれるかどうか確認できます。

リストの中身を出力するときは、For Eachを使うと簡単にすべての要素を取得できます。

実行結果の例

上記コードを実行すると、出力は環境によって多少異なる場合がありますが、概ね以下のような表示となります。

実行結果

40が含まれています。
先頭の要素は 30
30
40
50

Listクラスの具体例(独自クラスを格納する場合)

Listの型引数には、任意のオブジェクト型を指定できます。

たとえば、独自クラスをListに格納して管理することで、柔軟なデータ構造を構築できます。

上記では、FindAllメソッドを使用して条件に合致する要素のみを抽出し、新たなListとして取得しています。

このように、必要な要素を効率よく検索・絞り込みできる点もListクラスの大きな強みです。

注意点

Listクラスは便利ですが、いくつか留意するポイントがあります。

  • インデックス範囲外アクセス:リストの要素数より大きなインデックスを指定すると例外が発生します。
  • スレッドセーフ性:複数スレッドから同時に操作する場合、ロックや同期処理を検討する必要があります。
  • 反復処理中の変更:For Each中にリストの要素を追加・削除するとエラーが発生する場合があるため注意が必要です。
  • メモリとパフォーマンス:要素が増え続ける場合、容量の再割り当てが行われるため、状況に応じて初期容量を指定するといった最適化が考えられます。

まとめ

VB.NETのList(Of T)は、要素の追加や削除、検索、並べ替えなどが簡単に行える柔軟なコレクションです。

型を指定して使用するため、誤ったデータ型を格納するリスクを軽減でき、コードの可読性とメンテナンス性も向上します。

用途やパフォーマンス要求に応じて、List以外のコレクションと比較しながら使い分けると、より効率的な開発が行えます。