方法: オブジェクトのコレクションを作成する (Visual Basic)
他のオブジェクトの場合と同じように、オブジェクトを保持する変数を宣言し、コレクション オブジェクトを作成して変数に代入します。
コレクション オブジェクトには、Collection クラスと .NET Framework コレクション クラスのいずれかを使用できます。 特に、System.Collections.Generic 名前空間のいずれかのクラスを使用すると、ジェネリック コレクションを作成できます。 ジェネリック コレクションは、コレクション内のすべての項目が同じデータ型である場合に便利です。 ジェネリック コレクションには該当するデータ型しか追加できないので、厳密な型指定が適用されます。 詳細については、「方法: タイプ セーフなコレクションの定義 (Visual Basic)」を参照してください。
コレクション オブジェクトを作成した後は、コレクション内の項目を追加、削除およびアクセスできます。
コレクションを作成する 2 つの例を示します。 各コレクションは String 型の項目を保持し、String 型のキーを各項目に関連付けます。 最初の 2 つのプロシージャは、Visual Basic のコレクション クラスを使用してコレクションを作成します。 後の 2 つのプロシージャは、.NET Framework のジェネリック コレクション クラスを使用してコレクションを作成します。
Visual Basic コレクション クラスを使用してコレクションを作成するには
次の例に示すように、Visual Basic の Collection 変数を宣言および作成します。
Dim sampleVisualBasicColl As New Microsoft.VisualBasic.Collection()
sampleVisualBasicColl のコレクションには、任意のデータ型の項目を格納できます。
コレクションに要素を追加するには、Add メソッドを使用します。 次の例では、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 メソッドを使用して削除します。 次に例を示します。
' Remove the first element of the Visual Basic collection. sampleVisualBasicColl.Remove(1) ' Remove the element with the key "secondkey". sampleVisualBasicColl.Remove("secondkey")
Visual Basic Collection から要素を削除すると、インデックス値には 1 から Count プロパティの値までの番号が振り直されることに注意してください。
For Each...Next を使って Visual Basic コレクションの要素を処理するには
コレクションに格納されている型の変数を宣言します。 上の例に対して、次の例に示すように、String 型の変数を宣言します。
' Insert code from the preceding example. Dim aString As String
For Each...Next ステートメント (Visual Basic) を使用してコレクションの各要素を確認します。 次の例では、特定の文字列を検索し、見つかった場合にはこれを表示します。
For Each aString in sampleVisualBasicColl If aString = "Collection" Then MsgBox(aString) End If Next aString
ジェネリック コレクション クラスを使用してコレクションを作成するには
次の例に示すように、.NET Framework の System.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
参照
処理手順
方法: オブジェクトの配列を作成する (Visual Basic)