次の方法で共有


方法 : オブジェクトのコレクションを作成する

更新 : 2007 年 11 月

他のオブジェクトの場合と同じように、オブジェクトを保持する変数を宣言し、コレクション オブジェクトを作成して変数に代入します。

コレクション オブジェクトには、Visual Basic のコレクション クラスと .NET Framework コレクション クラスのいずれかを使用できます。特に、System.Collections.Generic 名前空間のいずれかのクラスを使用すると、ジェネリック コレクションを作成できます。ジェネリック コレクションは、コレクション内のすべての項目が同じデータ型である場合に便利です。ジェネリック コレクションには該当するデータ型しか追加できないので、厳密な型指定が適用されます。詳細については、「方法 : タイプ セーフなコレクションの定義」を参照してください。

コレクション オブジェクトを作成した後は、コレクション内の項目を追加、削除およびアクセスできます。

コレクションを作成する 2 つの例を示します。各コレクションは String 型の項目を保持し、String 型のキーを各項目に関連付けます。最初の 2 つのプロシージャは、Visual Basic コレクション クラスを使用してコレクションを作成します。後の 2 つのプロシージャは、.NET Framework ジェネリック コレクション クラスを使用してコレクションを作成します。

Visual Basic コレクション クラスを使用してコレクションを作成するには

  1. 次の例のようにして、Visual BasicCollection 変数を宣言および作成します。

    Dim sampleVisualBasicColl As New Microsoft.VisualBasic.Collection()
    

    sampleVisualBasicColl のコレクションには、任意のデータ型の項目を格納できます。

  2. コレクションに要素を追加するには、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 コレクションではオプションです。

  3. コレクションから要素を削除する場合は、位置インデックスかオプションのキーのいずれによって要素を指定し、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 コレクションの要素を処理するには

  1. コレクションに格納されている型の変数を宣言します。上の例に対して、次の例に示すように、String 型の変数を宣言します。

    ' Insert code from the preceding example.
    Dim aString As String
    
  2. For Each...Next ステートメント (Visual Basic) を使用してコレクションの各要素を確認します。次の例では、特定の文字列を検索し、見つかった場合にはこれを表示します。

    For Each aString in sampleVisualBasicColl
        If aString = "Collection" Then
            MsgBox(aString)
        End If
    Next aString
    

ジェネリック コレクション クラスを使用してコレクションを作成するには

  1. 次の例のようにして、.NET FrameworkSystem.Collections.Generic.Dictionary<TKey, TValue> 変数を宣言および作成します。

    Dim sampleGenericColl As New System.Collections.Generic.Dictionary(Of String, String)
    

    sampleGenericColl 変数は、String型の項目とキーだけを受け付けるタイプ セーフ コレクションを保持します。

  2. コレクションに要素を追加するには、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 引数は、このジェネリック コレクションでは必須です。

  3. コレクションから要素を削除するには、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 を使ってジェネリック コレクションの要素を処理するには

  1. コレクションに格納されている型の変数を宣言します。上の例に対して、次の例に示すように、String 型の変数を宣言します。

    ' Insert code from the preceding example.
    Dim aPair As KeyValuePair(Of String, String)
    
  2. 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 のコレクション クラス

参照

System.Collections

System.Collections.Generic

System.Collections.Specialized

Collection オブジェクト (Visual Basic)