C#里怎么样实现自己的类满足for-each循环访问?
C#里怎么样实现自己的类满足for-each循环访问?
由于foreach语句使用起来比较方便,并且又简单,不像for循环那样需要写三个语句,
并且还有可能判断不对,导致少访问的情况。
在使用库里提供的容器时,都会有实现foreach的方式。
如果自己的类也实现这种方式,使用起来就比较方便了。
其实需要了解接口IEnumerable,才能实现这种方式访问。
例子演示如下:
/*
* C# Program to Implement for-each in Inteface
*/
using System;
using System.Collections;
class GrowableArray : IEnumerable
{
object[] a;
public GrowableArray(int size)
{
a = new object[size];
}
public GrowableArray() : this(8) {}
void Grow()
{
object[] b = new object[2 * a.Length];
Array.Copy(a, b, a.Length);
a = b;
}
public object this[int i]
{
set
{
if (i >= a.Length) Grow();