Joa*_*nge 6 .net c# ienumerable
基本上假设你有一些收藏:
public class FurCollection : IEnumerable<FurStrand>
{
public IEnumerator<FurStrand> GetEnumerator()
{
foreach(var strand in this.Strands)
{
yield return strand;
}
}
IEnumerator IEnumerable.GetEnumerator()
{
return this.GetEnumerator();
}
}
Run Code Online (Sandbox Code Playgroud)
这可以接受吗?或者这是容易出错还是不好的做法?我几乎总是使用IEnumerator<T>但我仍然希望非通用版本稳定并正确实现.
jas*_*son 10
这是完全标准的,建议遵守DRY和其他问题.
注意
return strand;
Run Code Online (Sandbox Code Playgroud)
应该
yield return strand;
Run Code Online (Sandbox Code Playgroud)
此外,它看起来像this.Strands已经实现,IEnumerable<FurStrand>所以你可以说
return this.Strands.GetEnumerator();
Run Code Online (Sandbox Code Playgroud)