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