カテゴリ: VB.NET 更新日: 2026/01/31

VB.NETのコレクション初期化子を完全ガイド!初心者でもわかる簡単な書き方

VB.NETのコレクション初期化子の使い方
VB.NETのコレクション初期化子の使い方

先生と生徒の会話形式で理解しよう

生徒

「VB.NETでリストや配列を作るとき、一行ずつデータを追加するのが少し面倒に感じます。もっと楽な方法はありませんか?」

先生

「それなら『コレクション初期化子』という機能を使うのが一番ですよ。データを作るのと同時に、中身も一気に詰め込むことができるんです。」

生徒

「一気に詰め込む……。魔法みたいですね!具体的にはどのように書けばいいんですか?」

先生

「波括弧を使うだけで、コードが驚くほどスッキリします。それでは、基本的な使い方を見ていきましょう!」

1. コレクション初期化子とは?

1. コレクション初期化子とは?
1. コレクション初期化子とは?

VB.NETのコレクション初期化子とは、リスト(List)や辞書(Dictionary)などのデータの集まりを作るときに、最初から中身のデータを指定できる便利な書き方のことです。通常、プログラムでデータの集まりを作る際は、「箱を用意する」→「一個ずつ中身を入れる」という手順を踏みますが、この機能を使えば「中身が入った状態の箱をいきなり用意する」ことができます。

プログラミング未経験の方に例えると、買い物に行くときに「空の買い物カゴを持って店に入り、商品を一つずつカゴに入れる」のが従来のやり方だとすれば、コレクション初期化子は「最初から商品がセットになったギフトボックスを買う」ようなイメージです。手間が省けるだけでなく、コードが短く読みやすくなるため、可読性(コードの読みやすさ)が劇的に向上します。

2. List(Of T)での基本的な使い方

2. List(Of T)での基本的な使い方
2. List(Of T)での基本的な使い方

まずは、最もよく使われるList(リスト)での書き方を見てみましょう。従来の書き方では、Addという命令を何度も繰り返す必要がありましたが、コレクション初期化子を使えばFrom { ... }という構文で一括指定できます。

パソコンを触ったことがない方でも、この波括弧 { } の中にデータを入れるというルールさえ覚えれば大丈夫です。以下のコードは、好きな果物の名前をリストにまとめる例です。


' 従来の書き方(一行ずつ追加)
Dim fruitsOld As New List(Of String)()
fruitsOld.Add("りんご")
fruitsOld.Add("バナナ")
fruitsOld.Add("みかん")

' コレクション初期化子を使った書き方(一気に作成)
Dim fruitsNew As New List(Of String) From {"りんご", "バナナ", "みかん"}

' 表示して確認
For Each f As String In fruitsNew
    Console.WriteLine(f)
Next

りんご
バナナ
みかん

このように、Fromの後にデータを並べるだけで、自動的にリストの中身が作られます。行数が大幅に減って、何が入っているか一目で分かりますね。

3. Dictionary(Of TKey, TValue)での応用

3. Dictionary(Of TKey, TValue)での応用
3. Dictionary(Of TKey, TValue)での応用

次に、キー(合言葉)と値(データ本体)をペアで管理するDictionary(辞書)での使い方です。辞書の場合は、ペアを一組の波括弧で囲み、それをさらに大きな波括弧で包むという二重構造になります。

一見複雑そうに見えますが、「{キー, 値}」というセットを作って並べるだけなので、慣れてしまえば非常に簡単です。例えば、社員番号と名前をセットで管理するプログラムは以下のようになります。


' 辞書を初期化子で作る
Dim employeeMap As New Dictionary(Of Integer, String) From {
    {101, "田中さん"},
    {102, "佐藤さん"},
    {103, "鈴木さん"}
}

' 102番の人を呼び出す
Console.WriteLine("社員番号102番は " & employeeMap(102) & " です")

社員番号102番は 佐藤さん です

このように、初期設定として決まっているデータ(設定値やマスターデータなど)をプログラムに書き込むときに、この初期化子は非常に大きな力を発揮します。

4. 配列の初期化との違いを知ろう

4. 配列の初期化との違いを知ろう
4. 配列の初期化との違いを知ろう

VB.NETには「配列」という似たような機能もありますが、配列の場合はFromを使いません。配列は{ }だけで初期化するのが一般的です。プログラミング初心者の方は、Listは「From」が必要、配列は不要という違いを意識しておくと、エラーに悩まされることが少なくなります。

配列は後からサイズを変えるのが苦手ですが、Listは後からデータを追加したり消したりするのが得意という特徴があります。現代のVB.NET開発では、柔軟なListが使われることが多いため、このコレクション初期化子の書き方をマスターしておくことは非常に価値があります。


' 配列の初期化(Fromは書かない)
Dim numbers As Integer() = {10, 20, 30, 40, 50}

' リストの初期化(Fromを書く)
Dim numList As New List(Of Integer) From {10, 20, 30, 40, 50}

5. カスタムクラス(自作データ)を詰め込む

5. カスタムクラス(自作データ)を詰め込む
5. カスタムクラス(自作データ)を詰め込む

さらに高度な使い方として、自分で作ったデータの型(クラス)をリストに詰め込むこともできます。例えば「商品」というクラスに「名前」と「価格」という情報がある場合、それらを一気に並べてリストにすることが可能です。

これは実際の業務アプリやゲーム開発などで、キャラクターのステータス一覧や商品カタログの初期データを作るときに頻繁に使われるテクニックです。オブジェクト指向という難しい概念も、この初期化子を使えば直感的に記述できるようになります。


' 商品情報を表すクラス(あらかじめ定義されているとします)
' ※ここでは説明用のイメージです
Dim products As New List(Of Product) From {
    New Product With {.Name = "ペン", .Price = 100},
    New Product With {.Name = "消しゴム", .Price = 50},
    New Product With {.Name = "ノート", .Price = 150}
}

このように、Withを使った「オブジェクト初期化子」と組み合わせることで、複雑なデータ構造も流れるように記述できるのがVB.NETの素晴らしい点です。

6. コレクション初期化子を使うメリット

6. コレクション初期化子を使うメリット
6. コレクション初期化子を使うメリット

なぜこの書き方が推奨されるのでしょうか。その理由は、単に「楽だから」だけではありません。主なメリットは以下の3点です。

  • ミスが減る: 変数名を何度も書く必要がないため、別の変数にデータを追加してしまうといった書き間違いを防げます。
  • 意図が伝わる: 「このリストはこのデータから始まるんだな」という作成者の意図が、他のプログラマーに一瞬で伝わります。
  • メンテナンスが楽: データの追加や削除が、波括弧の中の行を増減させるだけで済むため、後からの修正が非常に簡単です。

プログラミングにおいて、「短く、かつ分かりやすい」ことは正義です。初心者のうちからこの書き方に慣れておくことで、プロに近いスマートなコードが書けるようになります。

7. 使用上の注意点:空のリストに注意

7. 使用上の注意点:空のリストに注意
7. 使用上の注意点:空のリストに注意

とても便利な初期化子ですが、注意点もあります。波括弧の中を空にして From {} と書くこともできますが、それなら単に New List(Of String)() と書くのと変わりません。基本的には、「最初から入れたいデータがあるとき」に限定して使うのがスマートです。

また、非常に大量のデータ(例えば1万件など)を初期化子で書こうとすると、コードが長くなりすぎて逆に読みづらくなることがあります。そのような場合は、ファイルやデータベースから読み込む方法を検討すべきですが、数件〜数十件程度のデータであれば、コレクション初期化子が最強の選択肢となります。

8. HashSetや他のコレクションでも使える!

8. HashSetや他のコレクションでも使える!
8. HashSetや他のコレクションでも使える!

ListやDictionaryだけでなく、以前学習したHashSet(重複を許さない集まり)QueueStackなど、ほとんどのコレクションで同じように使うことができます。VB.NETの基本ルールである「型を指定して初期化する」という流れは共通です。

一つ一つのコレクションの特性を活かしつつ、この初期化子という共通の武器を使うことで、あなたのプログラミングスキルは一段上のステップへ進むことができます。ぜひ、今日から自分のコードに取り入れてみてくださいね!

カテゴリの一覧へ
新着記事
New1
ASP.NET
ASP.NETのクロスサイトスクリプティング(XSS)を完全解説!初心者でもわかる仕組みと対策
New2
VB.NET
VB.NETの文字列置換を完全解説!初心者でもわかるReplaceメソッドの使い方
New3
ASP.NET
ASP.NETのセキュリティ対策を完全ガイド!初心者でもわかるXSS・CSRF・SQLインジェクションの基本
New4
VB.NET
VB.NETで文字列を検索する方法をマスター!IndexOfとContainsの使い方を初心者向けに徹底解説
人気記事
No.1
Java&Spring記事人気No1
VB.NET
VB.NETで文字列を連結する方法を完全ガイド!&演算子とString.Concatの使い方
No.2
Java&Spring記事人気No2
VB.NET
VB.NETのコレクション操作でよくあるエラーと解決策!初心者向けトラブル脱出ガイド
No.3
Java&Spring記事人気No3
VB.NET
VB.NETの配列(Array)の作り方と基本操作を徹底解説!初心者でもわかる入門ガイド
No.4
Java&Spring記事人気No4
VB.NET
VB.NETの文字列操作を完全ガイド!初心者が覚えるべき基本と宣言方法
No.5
Java&Spring記事人気No5
ASP.NET
ASP.NET MVCでセッションを使う方法を完全解説!初心者でもわかる状態管理入門
No.6
Java&Spring記事人気No6
ASP.NET
ASP.NETの認証と認可の違いを完全解説!初心者でもわかるOAuth・JWT・Azure ADの基本
No.7
Java&Spring記事人気No7
ASP.NET
ASP.NETの認証の仕組みを完全解説!初心者でもわかるログインの基本
No.8
Java&Spring記事人気No8
VB.NET
VB.NETでコレクションをソートする方法を完全ガイド!並び替えの基本