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


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

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

На этом занятии Вы узнаете, как использовать цикл For Each...Next для цикла через коллекцию.

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

Добавление цикла For Each...Next

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

Гораздо лучше будет добавить значения Position в коллекцию Items по циклу через коллекцию team с использованием инструкции цикла For Each...Next.

В цикле For...Next необходимо сначала объявить переменную счетчика; с инструкцией цикла For Each...Next необходимо сначала объявить переменную объекта. Следующий код демонстрирует цикл For Each...Next.

Dim player As Persons.Players
For Each player In team
    ComboBox1.Items.Add(player.Position)
Next

В этом случае независимо от количества имеющихся Players, метод ComboBox1.Items.Add выполняется по одному разу для каждого объекта Players в коллекции команды, а значение Position добавляется к списку.

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

Организация цикла через коллекцию

  1. Откройте проект Persons, созданный на предыдущем занятии. Если он не был завершен, вернитесь к предыдущему занятию, Использование коллекций для управления несколькими объектами, и завершите действия.

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

  3. Выберите элемент управления ComboBox. Затем в окне Свойства выберите свойство Items и нажмите кнопку ….

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

  5. Дважды щелкните форму, чтобы открыть редактор кода.

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

    Dim player As Persons.Players
    For Each player In team
        ComboBox1.Items.Add(player.Position)
    Next
    
  7. Нажмите клавишу F5 для запуска программы. Выберите позицию из выпадающего меню. Игрок в этой позиции отображается в окне сообщения.

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

На этом занятии использовался цикл For Each...Next для коллекции. В следующих занятиях будет создан другой тип объекта — пользовательский элемент управления.

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

См. также

Задачи

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

Ссылки

Инструкция For Each... Next (Visual Basic)

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

Программирование с применением объектов. Использование классов