> foreach原理
- 实现了一个IEnumerable接口

> 针对集合类型foreach遍历
我们每次针对集合类型编写foreach代码块,都是在使用迭代器
这些集合类型都实现了IEnumerable接口
都有一个GetEnumerator方法

> foreach结构
- foreach (type identifier in expression) statement 
   - type :identifier 的类型。 
   - identifier 表示集合元素的迭代变量。如果迭代变量为值类型,则无法修改的只读变量也是有效的
   - expression 对象集合或数组表达式。集合元素的类型必须可以转换为 identifier 类型。不要使用计算为 null 的表达式。
   - statement 要执行的嵌入语句。


- foreach循环用于列举出集合中所有的元素,foreach语句中的表达式由关键字in隔开的两个项组成。in右边的项是集合名,in左边的项是变量名,用来存放该集合中的每个元素。