Поделиться через


Практическое руководство. Создание коллекции объектов

Обновлен: Ноябрь 2007

Как для любого объекта, сначала необходимо объявить переменную для хранения объекта, а затем создать объект коллекции и присвоить его переменной.

Для объекта коллекции можно использовать класс коллекции Классы коллекций в Visual Basic или .NET Framework. В частности, можно создать generic коллекцию с помощью одного из классов в пространстве имен System.Collections.Generic. Универсальная коллекция применяется в том случае, если все элементы в коллекции имеют одинаковый тип данных. Универсальные коллекции используют strong typing, что позволяет добавлять только необходимые типы данных. Дополнительные сведения см. в разделе Практическое руководство. Определение строго типизированной коллекции.

После создания объекта коллекции можно добавлять и удалять элементы, а также получать доступ к элементам коллекции.

Далее приведены два примера создания коллекций. Каждая коллекция содержит элементы String и связывает ключ String с каждым элементом. Первые две процедуры создают коллекцию с помощью класса коллекции Visual Basic. Последние две процедуры создают коллекцию с помощью класса универсальной коллекции .NET Framework.

Чтобы создать коллекцию с помощью класса коллекции Visual Basic

  1. Объявите и создайте переменную Visual BasicCollection, как показано в следующем примере.

    Dim sampleVisualBasicColl As New Microsoft.VisualBasic.Collection()
    

    Коллекция в sampleVisualBasicColl может принимать элементы любого типа данных.

  2. Метод Add (объект Collection) служит для добавления элементов в коллекцию. В следующем примере создаются и добавляются в коллекцию четыре элемента 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")
    

    В коллекции Visual Basic аргумент Key является необязательным.

  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 содержит type-safe коллекцию, которая принимает только элементы и ключи типа String.

  2. Метод Dictionary<TKey, TValue>.Add используется для добавления элементов в коллекцию. В следующем примере создаются и добавляются в коллекцию четыре элемента 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)