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


Использование коллекций для управления несколькими объектами

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

В этом занятии описывается, как использовать коллекцию для управления группами объектов.

В одном из предыдущих уроков рассматривалось использование массивов для управления группами переменных. Помимо массивов, которые можно использовать для управления группами объектов, Visual Basic также имеет специальный тип объекта с именем коллекция, который может использоваться для хранения и извлечения групп похожих объектов.

Как в массиве, каждый элемент в объекте Collection имеет индекс, который может использоваться для идентификации данного элемента. Кроме того, каждый элемент в объекте Collection имеет ключ — переменную типа String, которая также может использоваться для идентификации элемента. Преимуществом использования ключа является то, что не нужно помнить индекс элемента; вместо этого можно ссылаться на него, используя понятное имя.

Создание коллекции

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

Первым шагом в создании коллекции является создание экземпляра объекта Collection, как показано в следующем объявлении.

Dim baseballTeam As New Collection

После создания объекта Collection можно использовать метод Add для добавления элементов к нему и метод Remove для удаления элементов. При добавлении элементов сначала указывается элемент, который требуется добавить, а затем указывается значение типа String, используемое в качестве ключа.

baseballTeam.Add(playerObject, "Player's Name")

При удалении элемента ключ используется для указания элемента, который требуется удалить.

baseballTeam.Remove("Player's Name")

В следующей процедуре будут добавлены два новых объекта Players, а затем будет создана коллекция team, в которую объекты Players с использованием свойства будут добавлены Position в качестве ключа.

Практическое задание

Чтобы создать коллекцию объектов

  1. Откройте проект Persons, созданный на предыдущем занятии. Если не удалось сохранить его, вернитесь к предыдущему занятию Создание класса на основе существующего класса. Применение наследования и выполните указанные действия.

  2. В Обозревателе решений в проекте PlayerTest выберите узел Form1.vb, а затем в меню Вид выберите Код.

  3. В редакторе кода добавьте следующий код в раздел объявлений (ниже объявления player2).

    Dim player3 As New Persons.Players
    Dim player4 As New Persons.Players
    Dim team As New Collection
    
  4. В процедуру события Form1_Load добавьте следующий код:

    With player3
        .FirstName = "Eduardo"
        .LastName = "Saavedra"
        .Number = 52
        .Position = "First Base"
    End With
    
    With player4
        .FirstName = "Karl"
        .LastName = "Jablonski"
        .Number = 22
        .Position = "Pitcher"
    End With
    
    team.Add(player1, player1.Position)
    team.Add(player2, player2.Position)
    team.Add(player3, player3.Position)
    team.Add(player4, player4.Position)
    
  5. В Обозревателе решений в проекте PlayerTest выберите узел Form1.vb. Затем в меню Вид выберите команду Конструктор.

  6. Из панели элементов перетащите в форму элемент управления ComboBox.

  7. В окне Свойства выберите свойство Items и щелкните на кнопке ….

  8. В Редакторе коллекций строк введите следующую команду и нажмите кнопку OK.

    Catcher

    First Base

    Pitcher

    Shortstop

  9. Дважды щелкните на элементе управления ComboBox, чтобы открыть редактор кода, а затем введите следующий код в обработчик событий ComboBox1_SelectedIndexChanged.

    Dim SelectedPlayer As Persons.Players
    SelectedPlayer = team(ComboBox1.SelectedItem)
    MsgBox("Playing " & ComboBox1.SelectedItem & " is " & _
    SelectedPlayer.FullName & "!")
    
  10. Нажмите клавишу F5 для запуска программы. Выберите позицию в раскрывающемся списке — игрок на этой позиции отображается в окне сообщения.

Следующие действия

В этом уроке рассматривался способ использования объекта Collection для управления группами объектов. Теперь можно получить дополнительные сведения о коллекциях в разделе Подробное рассмотрение. Использование цикла For Each...Next для перебора элементов коллекции или перейти к следующей группе занятий и изучить информацию о создании собственных элементов управления.

Следующее занятие: Видимые объекты. Создание первого пользовательского элемента управления

См. также

Задачи

Подробное рассмотрение. Использование цикла For Each...Next для перебора элементов коллекции

Подробное рассмотрение. Переопределение членов

Создание класса на основе существующего класса. Применение наследования

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

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

Другие ресурсы

Видимые объекты. Создание первого пользовательского элемента управления