Является ли бесконечное перечислимое все еще «перечислимым»?
Как и два перекрывающихся отрезка, мы можем найти бесконечные точки пересечения. Перечислять все эти пункты может не иметь смысла, и мы можем просто представить, что эта коллекция бесконечна.
Числа с плавающей точкой определили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
методы.