就像两条重叠的线段,我们可以找到无数个交点。枚举所有这些点可能没有意义,我们可能只想说明这个集合是无限的。
浮点数定义了NegativeInfinity
和PositiveInfinity
。表示计数或序数的数字似乎不需要使用浮点数,然而,整数未定义用于表示无穷大的东西。
因此,我尝试实现一个无限的可枚举。但是我突然对术语“可枚举”感到困惑...
是否有更好的方法来解决这个问题? 无限可枚举仍然可以被称为可枚举吗?
Code
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
和 IEnumerator
。返回 Infinity.Enumerable
的原因是因为我不想声明额外的虚拟对象,比如:
static readonly object dummy=new object();
在GetEnumerator方法中使用yield return dummy。