C#中,为嵌套类实现IEnumerable可以通过以下步骤实现:
以下是一个示例代码:
using System;
using System.Collections;
public class OuterClass
{
private int[] data;
public OuterClass()
{
data = new int[] { 1, 2, 3, 4, 5 };
}
public IEnumerator GetEnumerator()
{
return new NestedClassEnumerator(data);
}
private class NestedClassEnumerator : IEnumerator
{
private int[] data;
private int position = -1;
public NestedClassEnumerator(int[] data)
{
this.data = data;
}
public object Current
{
get
{
if (position == -1 || position >= data.Length)
throw new InvalidOperationException();
return data[position];
}
}
public bool MoveNext()
{
position++;
return (position < data.Length);
}
public void Reset()
{
position = -1;
}
}
}
public class Program
{
public static void Main()
{
OuterClass outer = new OuterClass();
foreach (int num in outer)
{
Console.WriteLine(num);
}
}
}
在上述示例中,OuterClass是一个包含嵌套类的外部类。嵌套类NestedClass实现了IEnumerator接口,并在OuterClass中实现了GetEnumerator方法,该方法返回一个NestedClassEnumerator对象,用于迭代嵌套类的数据。在Main方法中,通过foreach循环遍历OuterClass对象,实现对嵌套类数据的迭代输出。
推荐的腾讯云相关产品和产品介绍链接地址: