interface
自定义类型如果要使用foreach,需要定义一个名为GetEnumberator()的方法。由IEnumberator接口类型来定制。这个方法通常是交给保存子对象的内部成员。也可以使用yield return来实现。
public class Garage

{
private Car[] carArray =
new Car[4];

.. .
// 迭代器方法。
public IEnumerator GetEnumerator()

{
foreach (Car c
in carArray)

{

yield
return c;

}

}

}

public IEnumerable GetTheCars(
bool ReturnRevesed)

{
// 逆序返回项。
if (ReturnRevesed)

{
for (
int i = carArray.Length; i != 0; i--)

{

yield
return carArray[i-1];

}

}
else 
{
// 按顺序返回数组中的项。
foreach (Car c
in carArray)

{

yield
return c;

}

}

}
转载于:https://blog.51cto.com/zhupengyue/316502