我目前正在做一些 Project Euler 问题,早期的问题通常涉及斐波那契数或素数等问题。对它们进行迭代似乎很适合 LINQ,至少在代码的可读性和感知“优雅”方面(我试图在可能和适用的情况下使用特定于语言的特性来感受这些语言)。
我现在的问题是,如果我只需要一组达到一定限制的数字,我应该如何最好地表达这一点?目前我已经在迭代器中对各自的限制进行了硬编码,但我真的希望枚举器返回列表,直到外部的东西决定不再查询它,因为它超过了一定的限制。所以基本上我有一个潜在的无限迭代器,但我只从中获取一组有限的数字。我知道这样的事情在函数式语言中是微不足道的,但我想知道 C# 是否也允许这样做。我唯一的另一个想法是有一个迭代器 Primes(long) ,它返回素数达到一定限制,对于其他序列也是如此。
有任何想法吗?