其中的各个部分解释如下
Collection是包含所要循环记录项的对象它不一定是集合(来自SystemCollections}也可以是数组
LoopVariable是赋给Collection中每个记录的变量的名称
Type是LoopVariable的数据类型
例如考虑以下循环一个字符串数组的代码
Dim Names() As String =(daveDanChrisChrisJohn)
Dim AllNames As String
For Each Name As String In Names
AllNames &= Name &
Next
该代码首先创建一组名称并创建一个变量来保存所有这些连接在一起的名称在循环开始时Name被赋值为数组中的第一个记录项Dave并且被添加到ALNames变量中下一次循环时Name被赋值为数组中的下一个记录项Dan等在处理完数组中的所有记录项后该循环结束
这种循环还有另外一种形式即在循环体外声明循环变量
Dim Name As String
For Each Name In Names
All Nmaes &= Name &
Next
就循环的目的而言这种形式与在循环体内声明变量完全相同但是变量的作用范围不同(在本章稍后的变量的作用范围和生命周期中将详细介绍)
由于在NET编程中经常会使用集合和列表因此For Each非常有用在Wrox United的商店中当抵达结账页面(checkoutaspx)时就使用For Each您可以在商店中购买许多商品它们都被放置在购物车中这是个名为c}的自定义对象它包含CartItem对象的集合稍后您将会看到购物车的创建但是在结账时需要将购物车中的商品添加到数据库中而且使用For Each最为理想因为这是个集合
这里并没有详细介绍结账功能但是使用了以下几个对象
包含购物车的ShoppingCart对象作为Cart保存在Profile中(第章将介绍Profile)
CartItem对象的集合保存为ShoppingCart的Items属性
为了循环遍历购物车中的商品可以使用以下代码
For Each item As CartItem In ProfileCartItems
Next
[] [] [] [] [] [] [] []