
php
.NET中没有与php的InfiniteIterator完全等价的功能。不过,.NET中有一些类似的实现,可以用来达到类似的效果。
在.NET中,可以使用IEnumerable和yield关键字来实现类似于InfiniteIterator的功能。IEnumerable是一个接口,它定义了用于迭代集合元素的方法。yield关键字用于在迭代过程中产生一个元素。下面是一个使用IEnumerable和yield关键字实现的类似InfiniteIterator的例子:using System;using System.Collections.Generic;public class InfiniteIterator<T> : IEnumerable<T>{ private Func<T> _getNextElement; public InfiniteIterator(Func<T> getNextElement) { _getNextElement = getNextElement; } public IEnumerator<T> GetEnumerator() { while (true) { yield return _getNextElement(); } } System.Collections.IEnumerator System.Collections.IEnumerable.GetEnumerator() { return GetEnumerator(); }}public class Program{ public static void MAIn(string[] args) { int counter = 0; var iterator = new InfiniteIterator<int>(() => counter++); foreach (var element in iterator) { Console.WriteLine(element); if (element >= 10) { break; } } }}在上面的例子中,我们定义了一个泛型类InfiniteIteratorCopyright © 2025 IZhiDa.com All Rights Reserved.
知答 版权所有 粤ICP备2023042255号