更新 : 2007 年 11 月
他のオブジェクトの場合と同じように、オブジェクトを保持する変数を宣言し、コレクション オブジェクトを作成して変数に代入します。
コレクション オブジェクトには、Visual Basic のコレクション クラスと .NET Framework コレクション クラスのいずれかを使用できます。特に、System.Collections.Generic 名前空間のいずれかのクラスを使用すると、ジェネリック コレクションを作成できます。ジェネリック コレクションは、コレクション内のすべての項目が同じデータ型である場合に便利です。ジェネリック コレクションには該当するデータ型しか追加できないので、厳密な型指定が適用されます。詳細については、「方法 : タイプ セーフなコレクションの定義」を参照してください。
コレクション オブジェクトを作成した後は、コレクション内の項目を追加、削除およびアクセスできます。
コレクションを作成する 2 つの例を示します。各コレクションは String 型の項目を保持し、String 型のキーを各項目に関連付けます。最初の 2 つのプロシージャは、Visual Basic コレクション クラスを使用してコレクションを作成します。後の 2 つのプロシージャは、.NET Framework ジェネリック コレクション クラスを使用してコレクションを作成します。
Visual Basic コレクション クラスを使用してコレクションを作成するには
次の例のようにして、Visual BasicCollection 変数を宣言および作成します。
Dim sampleVisualBasicColl As New Microsoft.VisualBasic.Collection()sampleVisualBasicColl のコレクションには、任意のデータ型の項目を格納できます。
コレクションに要素を追加するには、Add メソッド (Collection オブジェクト) を使用します。次の例では、4 つの String 要素を作成し、これらをコレクションに追加します。新規の各要素のキーとして一意の String 値を作成し、この値を Add メソッドに渡します。
Dim item1, item2, item3, item4 As String item1 = "Items" item2 = "In" item3 = "A" item4 = "Collection" sampleVisualBasicColl.Add(item1, "firstkey") sampleVisualBasicColl.Add(item2, "secondkey") sampleVisualBasicColl.Add(item3, "thirdkey") sampleVisualBasicColl.Add(item4, "fourthkey")Key 引数は、Visual Basic コレクションではオプションです。
コレクションから要素を削除する場合は、位置インデックスかオプションのキーのいずれによって要素を指定し、Remove メソッド (Collection オブジェクト) を使用して削除します。次に例を示します。
' Remove the first element of the Visual Basic collection. sampleVisualBasicColl.Remove(1) ' Remove the element with the key "secondkey". sampleVisualBasicColl.Remove("secondkey")Visual BasicCollection から要素を削除すると、インデックス値には 1 から Count プロパティ (Collection オブジェクト) の値までの番号が振り直されることに注意してください。
For Each...Next を使って Visual Basic コレクションの要素を処理するには
コレクションに格納されている型の変数を宣言します。上の例に対して、次の例に示すように、String 型の変数を宣言します。
' Insert code from the preceding example. Dim aString As StringFor Each...Next ステートメント (Visual Basic) を使用してコレクションの各要素を確認します。次の例では、特定の文字列を検索し、見つかった場合にはこれを表示します。
For Each aString in sampleVisualBasicColl If aString = "Collection" Then MsgBox(aString) End If Next aString
ジェネリック コレクション クラスを使用してコレクションを作成するには
次の例のようにして、.NET FrameworkSystem.Collections.Generic.Dictionary<TKey, TValue> 変数を宣言および作成します。
Dim sampleGenericColl As New System.Collections.Generic.Dictionary(Of String, String)sampleGenericColl 変数は、String型の項目とキーだけを受け付けるタイプ セーフ コレクションを保持します。
コレクションに要素を追加するには、Dictionary<TKey, TValue>.Add メソッドを使用します。次の例では、4 つの String 要素を作成し、これらをコレクションに追加します。新規の各要素のキーとして一意の String 値を作成し、この値を Add メソッドに渡します。
Dim item1, item2, item3, item4 As String item1 = "Items" item2 = "In" item3 = "A" item4 = "Collection" sampleGenericColl.Add("firstkey", item1) sampleGenericColl.Add("secondkey", item2) sampleGenericColl.Add("thirdkey", item3) sampleGenericColl.Add("fourthkey", item4)Key 引数は、このジェネリック コレクションでは必須です。
コレクションから要素を削除するには、IDictionary<TKey, TValue>.Remove メソッドを使用します。削除する要素を識別するためのキーを指定する必要があります。次に例を示します。
If Not sampleGenericColl.Remove("thirdkey") ' Insert code to handle "thirdkey" not found in collection. End If次のプロシージャで示すように、For Each...Next ステートメントを使用すると、コレクション内の要素をループして処理できます。
For Each...Next を使ってジェネリック コレクションの要素を処理するには
コレクションに格納されている型の変数を宣言します。上の例に対して、次の例に示すように、String 型の変数を宣言します。
' Insert code from the preceding example. Dim aPair As KeyValuePair(Of String, String)For Each...Next ステートメント (Visual Basic) を使用してコレクションの各要素を確認します。次の例では、特定の文字列を検索し、見つかった場合にはこれを表示します。
For Each aPair In sampleGenericColl If aPair.Value = "Items" Then MsgBox(aPair.Key & " -- " & aPair.Value) End If Next aPair