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


Практическое руководство. Добавление, удаление и извлечение элементов из коллекции

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

Класс Visual Basic Collection содержит встроенные функциональные возможности, позволяющие добавлять, удалять и извлекать элементы.

  • Может потребоваться добавить элемент в коллекцию сразу же после его создания или получения, например при создании нового клиента.

  • Может потребоваться удалить элемент из коллекции, если он больше не принадлежит ей, например при увольнении сотрудника из компании.

  • Может потребоваться извлечение элемента из коллекции для изменения ее содержимого, например для изменения номера телефона студента.

f26wd2e5.alert_note(ru-ru,VS.90).gifПримечание.

Объекты Collection обновляют порядковые номера элементов автоматически по мере их добавления и удаления. Поэтому числовой индекс конкретного элемента может часто изменяться. Поэтому не рекомендуется сохранять числовое значение индекса для последующего извлечения элемента в программе. Для этого следует использовать ключи.

Добавление элемента в коллекцию

  • Используйте Метод Add (объект Collection) и задайте элемент по его ключу (Key).

    object.Add(Item, Key [, {Before | After}])

    Например, чтобы добавить объект "заказ на производство" в коллекцию заказов с свойства ID заказа в качестве ключа, можно сделать следующий вызов.

    workOrders.Add(woNew, woNew.ID)
    

    Предшествующий вызов предполагает, что свойство ID является строкой. Если оно является числом (например значением типа Long), используйте метод свойства ToString для преобразования его к типу String, необходимому для аргумента Key.

    workOrders.Add(woNew, woNew.ID.ToString())
    

    Использование ключа необязательно. Если нет необходимости связывать ключ с объектом коллекции, можно добавить объект без ключа.

    workOrders.Add(woNew)
    

    Для работы с упорядоченной коллекцией объектов можно использовать необязательные аргументы Before и After. Добавляемый элемент располагается в коллекции до или после элемента, определенного соответственно аргументом Before или After. Например, при использовании параметра Before, равного 1, элемент вставляется в начало коллекции, поскольку отсчет элементов коллекции Collection начинается с 1.

    workOrders.Add(woNew, woNew.ID, 1)
    

    Аналогичным образом, аргумент After задает добавление элемента после определенного индекса. В следующем примере элемент добавляется как третий элемент.

    workOrders.Add(woNew, woNew.ID,,2)
    

    Можно задать значение с помощью параметра Before или After (но не с помощью обоих одновременно).

Удаление элемента из коллекции

  • Используйте Метод Remove (объект Collection) и задайте элемент по его индексу (Index) или ключу (Key).

    object.Remove({Index | Key})

    Аргумент Index представляет собой номер позиции элемента, который требуется удалить. Аргумент Key совпадает со строкой, используемой для добавления элемента в коллекцию. Если ключ третьего элемента в коллекции — W017493, можно использовать для удаления любой из следующих двух операторов:

    workOrders.Remove(3)
    workOrders.Remove("W017493")
    

Удаление всех элементов из коллекции

Извлечение элемента из коллекции

  1. Используйте Свойство Item (объект Collection) и задайте элемент по его индексу (Index) или ключу (Key).

    variable = object.Item({Index | Key})

    Как и в методе Remove, аргумент Index — это номер позиции элемента в коллекции, а аргумент Key — строка, используемая при добавлении элемента. Если использовать условия примера для метода Remove, приведенного выше, каждый из следующих операторов извлекает третий элемент в коллекции.

    woCurrent = workOrders.Item(3)
    woCurrent = workOrders.Item("W017493")
    
    f26wd2e5.alert_note(ru-ru,VS.90).gifПримечание.

    Если в качестве ключей используются номера, следует использовать метод ToString, чтобы преобразовать их в строки перед передачей в методы Add и Remove или в свойство Item. Для объекта Visual Basic Collection всегда предполагается, что номер является индексом, а не строкой ключа.

  2. Если ключ известен во время компиляции, в качестве альтернативы можно использовать оператор доступа словаря (!) для доступа к элементу коллекции без заключения ключа в кавычки или круглые скобки. Предыдущий вызов может быть записан следующим образом.

    woCurrent = workOrders!W017493
    

См. также

Основные понятия

Классы коллекций в Visual Basic

Коллекции как альтернатива массивам

Коллекции в Visual Basic

Ссылки

Члены объекта коллекции

Метод Add (объект Collection)

Метод Remove (объект Collection)

Метод Clear (объект Collection)

Свойство Item (объект Collection)