Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How can I enumerate an infinite sequence of integers in C# 4.0?

Is there a function in C# that returns an IEnumerator of the infinite sequence of integers [0, 1, 2, 3, 4, 5 ...]?

I'm currently doing

Enumerable.Range (0, 1000000000).Select (x => x * x).TakeWhile (x => (x <= limit))

to enumerate all squares up to limit. I realize that this is effective, but if there's a built-in function that just counts up from 0, I would prefer to use it.

like image 718
Jeremy Avatar asked Sep 05 '11 00:09

Jeremy


1 Answers

You could roll your own.

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

Edit Why dont you just pass limit in to Range? This might be off by one...

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

I was wrong about this edit.

like image 73
Daniel A. White Avatar answered Sep 30 '22 00:09

Daniel A. White