Как перечислить бесконечную последовательность целых чисел в C# 4.0?

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

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

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

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

2 ответов


вы могли бы свернуть свой собственный.

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

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

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

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


это пришло мне в голову, и подходит для того, что я делал:

Enumerable.Range (0, int.MaxValue)