Как я могу перечислить бесконечную последовательность целых чисел в C # 4.0? - PullRequest
9 голосов
/ 05 сентября 2011

Есть ли в C # функция, которая возвращает IEnumerator бесконечной последовательности целых чисел [0, 1, 2, 3, 4, 5 ...]?

В настоящее время я делаю

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

, чтобы перечислить все квадраты вверхдо limit.Я понимаю, что это эффективно, но если есть встроенная функция, которая просто считает от 0, я бы предпочел использовать ее.

Ответы [ 2 ]

14 голосов
/ 05 сентября 2011

Вы можете свернуть свои собственные.

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

Редактировать Почему бы вам просто не передать лимит в Range?Это может быть отключено одним ...

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

Я ошибся в этом редактировании.

9 голосов
/ 05 сентября 2011

Это произошло со мной и подходит для того, что я делал:

Enumerable.Range (0, int.MaxValue)
...