如何在C#4.0中枚举无限的整数序列?

9 c# loops enumerate c#-4.0

C#中是否有一个函数返回IEnumerator无限的整数序列[0, 1, 2, 3, 4, 5 ...]

我现在正在做

Enumerable.Range (0, 1000000000).Select (x => x * x).TakeWhile (x => (x <= limit))
Run Code Online (Sandbox Code Playgroud)

列举所有方块limit.我意识到这是有效的,但是如果有一个内置函数可以计算0,我宁愿使用它.

Dan*_*ite 14

你可以自己动手.

   IEnumerable<BigInteger> Infinite() {
      BigInteger value = 0;
      while (true) {
        yield return value++;
      }
   }
Run Code Online (Sandbox Code Playgroud)

编辑 为什么你不通过限制Range?这可能是一个人......

Enumerable.Range(0, limit).Select(x => x * x);
Run Code Online (Sandbox Code Playgroud)

我对这个编辑错了.


小智 9

这发生在我身上,适合我正在做的事情:

Enumerable.Range (0, int.MaxValue)
Run Code Online (Sandbox Code Playgroud)

  • 这比无限小一点. (9认同)
  • 这远非无限......实际上是无限远!见丹尼尔白人回答. (3认同)
  • 注意:如果start大于零,则无效,因为start + count需要小于int.MaxValue. (3认同)