今回は、VB.NETのDictionary(連想配列)の使い方と具体例をご紹介します。
Dictionary(Of TKey, TValue)とは?
Dictionary(Of TKey, TValue)は、キーと値のペアを効率的に管理できるコレクションです。
従来の配列やリストのようにインデックスで管理するのではなく、キーを用いて直接値にアクセスできるため、たとえば「名前」と「年齢」や「ID」と「オブジェクト」など、意味づけられたデータを扱う場合に有用です。
内部ではハッシュテーブルを利用しているため、キーから値へのアクセスが高速である点が大きな特徴です。
基本的な使い方
まずは、宣言と初期化の方法から確認してみます。
Dictionaryを使う際は、キーと値の型を指定して宣言します。
Dictionaryでよく使う主なメソッドと操作は以下のとおりです。
- Add:新しいキーと値のペアを追加(重複キーがあると例外)
- インデクサ(dict(key) = value):既存キーの場合は上書き、新規キーの場合は追加
- ContainsKey:キーの存在を確認
- Remove:指定したキーと値のペアを削除
- TryGetValue:キーが存在するかを確認しつつ取得
項目の追加と更新
Dictionaryへ項目を追加する方法は複数あります。
上記のようにインデクサを使うと、既に存在するキーの場合は値を更新、存在しないキーの場合は新しい項目が追加されます。
一方、Addメソッドは重複キーの追加ができない点に注意してください。
値の取得と削除
キーを指定して値を取り出す場合は、以下のようにインデクサを使います。
ただし、存在しないキーを指定するとKeyNotFoundExceptionが発生します。
そのため、事前にContainsKeyでチェックするか、TryGetValueを活用すると安全です。
項目を削除するときは、Removeメソッドを使います。
実用的な例
ここでは、ユーザー名と年齢を管理するコード例を挙げます。
Dictionaryを活用して、追加・更新・削除・全件出力を行う流れを見てみましょう。
上記コードを実行すると、以下のような出力結果が得られます。
Alice の年齢は 30 歳です。
ユーザー名: Alice, 年齢: 30
ユーザー名: Bob, 年齢: 26
ユーザー名: Charlie, 年齢: 35
ユーザー名: Diana, 年齢: 28
活用時の注意点
Dictionaryを使う際に意識したいポイントをまとめます。
- 重複キー:Addメソッドを使って既に存在するキーを追加するとArgumentExceptionが発生するので注意が必要です。
- 存在しないキーへのアクセス:存在しないキーを参照するとKeyNotFoundExceptionが発生するため、ContainsKeyやTryGetValueを活用してエラーを防ぎます。
- 要素の順序:Dictionaryは要素の順序を保証しません。順序が必要な場合はSortedDictionaryやListなど別の手段を検討します。
- スレッドセーフ:複数のスレッドから同時に操作する際は、ロックなどの同期を考慮する必要があります。
- メモリ使用量:ハッシュテーブルを利用しているため、扱うデータ量が膨大になる場合はメモリ管理を念頭に置きます。
まとめ
VB.NETのDictionaryは、キーを使って素早く値にアクセスできる便利なコレクションです。
使いこなすためにはAddやインデクサを使った追加・更新の挙動を理解し、存在チェックや例外処理を適切に行うことが重要です。
用途に合った活用方法を身につけて、プログラムをより柔軟に管理してみてください。