For Each 语句

For Each 语句用来遍历一个集合数组的全部成员 ,语法为:

For Each 循环变量 In 集合
    代码

Next

针对集合中每一个成员执行代码;语句中的循环变量,其数据类型必须和集合成员的类型相同。

如下面的代码,首先定义一个字符型集合,接着向集合加入一些值,最后利用For Each语句列出集合中所有的值:

Dim Values As New List(Of String) From {"北京", "上海", "天津"}
Dim
Value As String
For Each Value In Values
    Output.Show(Value)

Next

你可以直接在For语句中声明循环变量,语法为:

For Each 循环变量 As 变量类型 In 集合
    代码

Next

此时循环变量只能在循环代码中使用,例如:

Dim Values As New List(Of String)
Values.AddRange({
"北京市", "上海市", "天津市"})
For
Each Value As String In Values
    Output.Show(Value)

Next

For Each 语句,同样支持Exit For和Continue For。

例如下面的代码,检查集合中的每一个值,如果是北京市,则继续下一次循环,如果是重庆市,则提示“找到了”,并退出循环;如果是其它值,则显示该值:

Dim Values As New List(Of String)
Values.Add(
"北京市")
Values.Add(
"上海市")
Values.Add(
"天津市")
For
Each Value As String In Values
    If
Value = "北京市" Then
        Continue
for
    ElseIf
Value = "重庆市" Then
        Output.Show(
"找到了!")
        Exit
For
    End
If
    OutPut.Show(Value)

Next

实际上,For Each语句不仅可以用来遍历集合,还可以遍历数组,例如:

Dim Names As String() = {"日期","客户","雇员"}
For Each
Name As String In Names
    Output.Show(Name)

Next

上面的代码等效于:

Dim Names As String() = {"日期","客户","雇员"}
For
i As Integer = 0 To Names.Length -1

    Output.Show(Names(i))
Next

用何种方式,看各人喜好,我个人更喜欢前者。


本页地址:http://www.foxtable.com/webhelp/topics/0226.htm