就像两条重叠的线段一样,我们可以找到无限的交点。列举所有这些点可能没有意义,我们可能只想展示这个集合是无限的。
浮点数已定义NegativeInfinity
和PositiveInfinity
。表示计数或序数的数字似乎不需要使用浮点数,但是,整数没有定义为表示无穷大。
所以我试图实现一个无限可枚举。但是我突然对“可枚举”这个词感到困惑..
有没有更好的方法来解决这个问题?无限可枚举仍然可枚举吗?
代码
public partial class Infinity: IEnumerable<object> { IEnumerator<object> IEnumerable<object>.GetEnumerator() { for(; ; ) yield return Infinity.Enumerable; } public IEnumerator GetEnumerator() { for(; ; ) yield return Infinity.Enumerable; } public Infinity LongCount( Func<object, bool> predicate=default(Func<object, bool>)) { return Infinity.Enumerable; } public Infinity Count( Func<object, bool> predicate=default(Func<object, bool>)) { return Infinity.Enumerable; } public static readonly Infinity Enumerable=new Infinity(); }
编辑:
谢谢回答。我并不混淆IEnumerable
and IEnumerator
。GetEnumerator
方法返回Infinity.Enumerable
是因为我不想声明一个额外的虚拟对象,例如:
static readonly object dummy=new object();
dummy
并在GetEnumerator
方法中产生回报。