重なり合う 2 つの線分のように、無限の交点を見つけることができます。これらすべてのポイントを列挙することは意味がないかもしれません。このコレクションが無限であることを提示したいだけかもしれません.
浮動小数点数には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
IEnumerator
GetEnumerator
Infinity.Enumerable
static readonly object dummy=new object();
メソッドでリターンを生成dummy
しGetEnumerator
ます。