Подробное рассмотрение. Использование цикла 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 добавляется к списку.
Практическое задание
Организация цикла через коллекцию
Откройте проект Persons, созданный на предыдущем занятии. Если он не был завершен, вернитесь к предыдущему занятию, Использование коллекций для управления несколькими объектами, и завершите действия.
В Обозревателе решений выберите узел Form1.vb в проекте PlayerTest, затем в меню Вид выберите Конструктор.
Выберите элемент управления ComboBox. Затем в окне Свойства выберите свойство Items и нажмите кнопку ….
В Редакторе коллекций строк удалите четыре существующие записи и нажмите кнопку OK.
Дважды щелкните форму, чтобы открыть редактор кода.
В редакторе кода добавьте следующий код в раздел объявлений (ниже объявления team).
Dim player As Persons.Players For Each player In team ComboBox1.Items.Add(player.Position) Next
Нажмите клавишу F5 для запуска программы. Выберите позицию из выпадающего меню. Игрок в этой позиции отображается в окне сообщения.
Следующие действия
На этом занятии использовался цикл For Each...Next для коллекции. В следующих занятиях будет создан другой тип объекта — пользовательский элемент управления.
Следующее занятие: Видимые объекты. Создание первого пользовательского элемента управления
См. также
Задачи
Использование коллекций для управления несколькими объектами
Ссылки
Инструкция For Each... Next (Visual Basic)
Другие ресурсы
Программирование с применением объектов. Использование классов