foreach使用规则
•       来源于shell, VB, PERL
       用于任一集合,包括数组
using System;
sealed class Foreach
{
    static void Main(string[] args)
    {
        foreach (string arg in args)
        {
            Console.Write("{0} ", arg);
        }
        Console.WriteLine();
    }
}
把以上程序在windows命令行进行编译:C:\Sharp>csc Foreach.cs
然后键入:C:\Sharp>Foreach 0 1 2 3 4 5 6 7 8 9
屏幕上显示0 1 2 3 4 5 6 7 8 9
foreach用来遍历集合或数组中的元素。
foreach的几点注意
•        foreach ( 类型 标识符 in 表达式 )
       类型和标识符声明一个循环变量
       循环变量隐含为readonly, 不能有ref 或out 修饰
        表达式是可列举的集合
sealed class ForeachTranslation
{
    static void Example(MyWibbleCollection wibbles)
    {
        MyEnumerator pos = wibbles.GetEnumerator();
        while (pos.MoveNext())
        {
            Wibble current = pos.Current;
            Console.Write("{0} ", current);
        }
    }
}
集合类型的定义规则:(假设集合的名字是C)
C必须定义一公有函数GetEnumerator(),该函数的返回值是一结构类型或是一类类型或是一接口类型(假设返回值的名字是E);
返回值E的定义规则:
        E包含一公有函数MoveNext(),用来使E指向集合中的下一个元素,返回值的类型是bool。
        E包含一公有属性Current,用来读取当前值。这个属性的类型是集合元素的类型。