ПОНЯТНО О Visual Basic NET (том 2)

Оператор цикла For Each


Работа For Each с коллекциями. Для коллекций удобно применять специальную разновидность оператора цикла – For Each. Для этого необходимо придумать имя переменной цикла, значение которой будет пробегать все элементы коллекции. Мы придумали имя Мой_объект. Надо объявить переменную цикла так, чтобы ее тип подходил для всех элементов коллекции. Поскольку в нашей коллекции одни только элементы управления, мы объявили так:

        Dim Мой_объект As Control

хотя могли и так:

        Dim Мой_объект As Object

Ведь тип Object всеяден. Но чем более конкретный тип мы указываем, тем удобнее работать.

Когда цикл выполняется в первый раз, Мой_объект «равняется» одному элементу коллекции, во второй раз – другому и т.д., пока элементы не будут исчерпаны. В остальном синтаксис и порядок выполнения оператора For Each такой же, как и у привычного нам For. К нему также можно применять оператор Exit For.

Мы использовали функцию TypeName, чтобы выбрать из всех элементов коллекции элементы только данного типа. Пояснять ее я не буду, используйте дальше по аналогии.

Работа For Each с массивами. Оператор For Each никто не запрещал использовать и при работе с массивами. Вот пример:

Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click

        Dim a() As Integer = {10, 11, 12, 13, 14}

        Dim Элемент As Integer

        For Each Элемент In a

            Debug.WriteLine(Элемент)

        Next

End Sub

Напечатает эта процедура вот что:

10

11

12

13

14



Содержание раздела