joh*_*hni -2 c# arrays ienumerable enumerator
我有一个带有索引器的类。我希望能够在this上运行 foreach 循环,但它说我必须实现 Enumerator 接口。这让我实现了两种方法:
#region IEnumerable implementation
public IEnumerator<Type> GetEnumerator() {
throw new NotImplementedException();
}
#endregion
#region IEnumerable implementation
IEnumerator IEnumerable.GetEnumerator() {
throw new NotImplementedException();
}
#endregion
Run Code Online (Sandbox Code Playgroud)
该类是这样构建的:
我希望能够在类中的this上运行 foreach 循环,因此我可以使用索引器的获取和设置逻辑获取和设置数组字段。
这就是为什么我需要实现 GetEnumerator 方法,但我不知道那里需要什么样的实现。
谢谢你的帮助。
注意:我如何实现 IEnumerable<T>线程对我没有帮助,我已经阅读过了。唯一的实现是返回数组的枚举器。
这是实现 IEnumerable 的一个非常简单的示例:
public class SomeEnumerable : IEnumerable<string>
{
private string[] values = new string[] { "foo", "bar" };
#region Enumerator
private IEnumerable<string> GetValues()
{
foreach(var s in values)
{
yield return s;
}
}
#endregion Enumerator
#region IEnumerable implementation
public IEnumerator<string> GetEnumerator() {
return GetValues().GetEnumerator();
}
#endregion
#region IEnumerable implementation
IEnumerator IEnumerable.GetEnumerator() {
return GetEnumerator();
}
#endregion
}
Run Code Online (Sandbox Code Playgroud)
如果您正在做一些不寻常的事情,只需将 GetValues() 内部的逻辑替换为您需要的任何内容。
| 归档时间: |
|
| 查看次数: |
2898 次 |
| 最近记录: |