【问题标题】:What is the equivalent of PHP's InfiniteIterator in .NET?.NET 中 PHP 的 InfiniteIterator 等价物是什么?
【发布时间】:2012-04-19 00:14:22
【问题描述】:

我和朋友讨论了 PHP 的 InfiniteIterator

.NET 世界中是否有它的等价物?

【问题讨论】:

  • 它有什么作用?这和无限while循环一样吗?
  • 这是我首先强调的,但我也强调这太容易成为现实。对吗?

标签: php .net equivalent


【解决方案1】:

不是内置但容易编写:

public static IEnumerable<T> RepeatInfinitely<T>(this IEnumerable<T> sequence)
{
 while(true) {
  foreach(var item in sequence)
   yield return item;
 }
}

【讨论】:

    【解决方案2】:

    您可以自己滚动。

    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();
        }
    }
    

    【讨论】:

      猜你喜欢
      • 2011-10-13
      • 1970-01-01
      • 1970-01-01
      • 2011-12-25
      • 2010-10-02
      • 1970-01-01
      • 1970-01-01
      • 2011-06-05
      相关资源
      最近更新 更多