Tôi đã có một cuộc thảo luận về PHP InfiniteIterator với một người bạn.Tương đương với InfiniteIterator của PHP trong .NET là gì?
Có tương đương với nó trong thế giới .NET không?
Tôi đã có một cuộc thảo luận về PHP InfiniteIterator với một người bạn.Tương đương với InfiniteIterator của PHP trong .NET là gì?
Có tương đương với nó trong thế giới .NET không?
Không tích hợp nhưng dễ dàng để viết:
public static IEnumerable<T> RepeatInfinitely<T>(this IEnumerable<T> sequence)
{
while(true) {
foreach(var item in sequence)
yield return item;
}
}
bạn chỉ có thể cuộn của riêng bạn.
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();
}
}
trong khi (đúng) {...} :-) –
Làm như thế nào? Đó có giống như một vòng lặp vô hạn không? – Jack
Đây là những gì tôi nghĩ tôi đầu tiên nhưng tôi cũng nghĩ rằng nó sẽ là quá dễ dàng để được đúng sự thật. Đúng? –