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

时间:2011-09-05 00:38:43

标签: c# c#-4.0 loops enumerate

C#中是否有一个函数返回无限整数序列IEnumerator的{​​{1}}?

我正在做

[0, 1, 2, 3, 4, 5 ...]

枚举所有方格,直至Enumerable.Range (0, 1000000000).Select (x => x * x).TakeWhile (x => (x <= limit)) 。我意识到这是有效的,但如果有一个内置函数只能从limit计算,我宁愿使用它。

2 个答案:

答案 0 :(得分:14)

你可以自己动手。

   IEnumerable<BigInteger> Infinite() {
      BigInteger value = 0;
      while (true) {
        yield return value++;
      }
   }

修改的 <击> 你为什么不把限制传递给Range?这可能是一个......

Enumerable.Range(0, limit).Select(x => x * x);

<击> 我对这个编辑错了。

答案 1 :(得分:9)

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

Enumerable.Range (0, int.MaxValue)