Visual Basic の Dictionary は、キーと値のペアを保存するための連想コレクションです。VB.NET では、名前空間 System.Collections.Generic の Dictionary(Of TKey, TValue) を使用します。
初期の Visual Basic バージョンは、型なしの文字列および数値キーのみをサポートする従来のコレクション (Collection) に制限されていました。VB.NET と .NET Framework の登場により、コレクションにはジェネリック Dictionary が導入され、連想データの操作がより安全かつ迅速になりました。
Dictionary 使用時の典型的なエラーには以下が含まれます:
Dictionary を使用する際には、以下の点に留意することが重要です:
ContainsKey メソッドを使用してキーの存在を常に確認するコード例:
Dim dict As New Dictionary(Of String, Integer) dict("apples") = 10 ' アクセス前の安全チェック: If dict.ContainsKey("bananas") Then Console.WriteLine(dict("bananas")) Else Console.WriteLine("キーは見つかりません!") End If
重要な特徴:
Dictionary 内で存在しないキーにアクセスしようとした場合に発生する例外は何ですか?また、それをどう回避しますか?
エラー: System.Collections.Generic.KeyNotFoundException。これを防ぐためには、ContainsKey メソッドを使用します。
既存の Dictionary 要素のキーを変更できますか?
できません。追加された後にキーを変更することはできず、要素を削除して新しいキーで追加する必要があります。
VB.NET における Dictionary と Hashtable の違いは何ですか?
Dictionary は型安全で (ジェネリック)、動作が速く、値のボックス化/アンボックス化を必要としません。Hashtable は古く、使用が推奨されていません。
**ネガティブケース
プログラマーが Dictionary を使用して都市ごとの売上統計を保存しますが、アクセス前にキーの存在を確認しないため、New City でレポートを取得すると KeyNotFoundException が発生します。
利点:
欠点:
**ポジティブケース
同じレポートですが、キーにアクセスする際には常に ContainsKey を使用確認し、キーが存在しない場合は 0 を返すかメッセージを表示します。
利点:
欠点: