[英]What is the equivalent of PHP's InfiniteIterator in .NET?
I had a discussion on PHP's InfiniteIterator with a friend. 我和一个朋友讨论了PHP的InfiniteIterator 。
Is there an equivalent of it in the .NET world? .NET世界中是否有与之等效的东西?
Not built-in but easy to write: 不是内置的,但易于编写:
public static IEnumerable<T> RepeatInfinitely<T>(this IEnumerable<T> sequence)
{
while(true) {
foreach(var item in sequence)
yield return item;
}
}
you can just roll your own. 你可以自己动手。
public class InfiniteEnumerator: System.Collections.IEnumerator
{
private System.Collections.IEnumerator _m_enumerator;
public InfiniteEnumerator(System.Collections.IEnumerator enumerator)
{
_m_enumerator = enumerator;
}
public object Current
{
get { return _m_enumerator.Current; }
}
public bool MoveNext()
{
if (!_m_enumerator.MoveNext())
{
_m_enumerator.Reset();
return _m_enumerator.MoveNext();
}
else
{
return true;
}
}
public void Reset()
{
_m_enumerator.Reset();
}
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.